Précédent   Forum du club des développeurs et IT Pro > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 08/11/2012, 15h57   #1
nabil.brarou
Membre à l'essai
 
Homme
Étudiant
Inscription : juin 2012
Messages : 116
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : juin 2012
Messages : 116
Points : 20
Points : 20
Par défaut Une requête qui ne s'exécute jamais

Bonjour chers SGBD users,

J'ai une requête SQL sous PostgreSQL qui ne s'exécute jamais et n'affiche pas d'erreurs.
J'ignore complétement la raison d’être, toutefois la base de données ne contient pas d'erreurs et tout semble bien mis, quoique vu que je manipule des données géographiques, je pense que l'erreur se cache ici ?
Voici ma requête :
Code :
1
2
3
4
5
CREATE TABLE tv_localisation_polygone_zoneshumides AS
SELECT loc_id_localisation, lpo_id_localisation_polygone, 
tv_geom_zones_humides.gez_id_geom_zonage 
FROM t_localisation_polygone,tv_geom_zones_humides
WHERE intersects(tv_geom_zones_humides.gez_geometry, t_localisation_polygone.lpo_geometry) ;
La fonction intersects est une fonction spatiale, i.e traite les données géo comme (points, lignes, polygones) elle cherche l'intersection entre les deux paramètres.

Des propositions pourront me satisfaire, et de m'assurer de l'existence d'une solution.
Merci d'avance.
nabil.brarou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2012, 16h48   #2
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 4 063
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 37
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 4 063
Points : 8 922
Points : 8 922
Bonjour,

Par "qui ne s'exécute jamais", vous voulez bien dire que la table en question n'est pas créée ?
Qu'est-ce que ça donne quand vous enlevez la première ligne CREATE TABLE tv_localisation_polygone_zoneshumides AS ?
__________________
Rédacteur / Modérateur SGBD
Mes tutoriels et la FAQ MySQL

----------------------------------------------------
Pensez aux balises code et au tag
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
ced est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2012, 10h18   #3
nabil.brarou
Membre à l'essai
 
Homme
Étudiant
Inscription : juin 2012
Messages : 116
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : juin 2012
Messages : 116
Points : 20
Points : 20
Elle ne s’exécute pas non plus, je lance la requête sous pgAdmin 3 et j'attends des heures et des heures.
Quelqu'un peut-il m'aider la dessus ?
J'en serais très reconnaissant.
nabil.brarou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2012, 10h44   #4
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 4 063
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 37
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 4 063
Points : 8 922
Points : 8 922
Et au lieu de lancer la requête, que donne l'affichage de son plan d'exécution ?
__________________
Rédacteur / Modérateur SGBD
Mes tutoriels et la FAQ MySQL

----------------------------------------------------
Pensez aux balises code et au tag
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
ced est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 06h51   #5
SQLpro
Rédacteur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 12 080
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 12 080
Points : 21 678
Points : 21 678
1) quel est le volume/nombre des lignes des tables ?
2) les colonnes spatiales tv_geom_zones_humides.gez_geometry et t_localisation_polygone.lpo_geometry sont-elles indexées ?

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2012, 13h58   #6
nabil.brarou
Membre à l'essai
 
Homme
Étudiant
Inscription : juin 2012
Messages : 116
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : juin 2012
Messages : 116
Points : 20
Points : 20
Je m'excuse pour le retard !!!

Le plan d'exécution est comme suit :

Code :
1
2
3
4
Nested Loop  (cost=0.00..1429840117.96 rows=10509691989 width=12)
  JOIN Filter: intersects(tv_geom_zones_humides.gez_geometry, t_localisation_polygone.lpo_geometry)
  ->  Seq Scan ON tv_geom_zones_humides  (cost=0.00..1773.76 rows=26376 width=2038)
  ->  Seq Scan ON t_localisation_polygone  (cost=0.00..39267.70 rows=1195370 width=13145)
Pour la table tv_geom_zones_humides :
- le nombre de ligne de la colonne gez_geometry : 26376
Pour la table t_localisation_polygone :
- le nombre de ligne de la colonne lpo_geometry :1.19537e+06

Les tables ne sont pas indexées.
nabil.brarou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2012, 16h01   #7
nabil.brarou
Membre à l'essai
 
Homme
Étudiant
Inscription : juin 2012
Messages : 116
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : juin 2012
Messages : 116
Points : 20
Points : 20
C'est peut etre à cause de la non indexation des colonnes spatiales que ça bug, mais je ne suis pas sur, en tout cas le chemin que je cherche pour l'instant est celui de l'indexation de ces deux colonnes? pourrais je les indexer sans indexer les tables? et Comment pourrais je indexer des champs spatiales ?
nabil.brarou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2012, 10h37   #8
SQLpro
Rédacteur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 12 080
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 12 080
Points : 21 678
Points : 21 678
Code :
1
2
CREATE INDEX X_GIS_loc_pol ON t_localisation_polygone USING GIST (lpo_geometry);
CREATE INDEX X_GIS_zon_hum ON tv_geom_zones_humides USING GIST (gez_geometry);
ATTENTION : la création de tels index sur une forte volumétrie peut demander plusieurs heures de travail. A ce terme vos requêtes seront probablement 1000 fois plus rapides...

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2012, 14h02   #9
nabil.brarou
Membre à l'essai
 
Homme
Étudiant
Inscription : juin 2012
Messages : 116
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : juin 2012
Messages : 116
Points : 20
Points : 20
Merci SQLpro d'avoir répondu,
Justement par rapport aux index des champs géométriques, j'ai lu sur les index B-tree, R-tree et GIST laquelle de ces 3 vous parrait la plus pertinente en terme de rapidité d'accès aux champs géométriques.
nabil.brarou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2012, 14h53   #10
SQLpro
Rédacteur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 12 080
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 12 080
Points : 21 678
Points : 21 678
Il n'y a pas le choix. Un index spatial est toujours GIST.

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h27.


 
 
 
 
Partenaires

Hébergement Web