IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

Une requête qui ne s'exécute jamais


Sujet :

PostgreSQL

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    156
    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 : 156
    Points : 59
    Points
    59
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    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 et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    156
    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 : 156
    Points : 59
    Points
    59
    Par défaut
    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.

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Et au lieu de lancer la requête, que donne l'affichage de son plan d'exécution ?
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    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
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    156
    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 : 156
    Points : 59
    Points
    59
    Par défaut
    Je m'excuse pour le retard !!!

    Le plan d'exécution est comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    156
    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 : 156
    Points : 59
    Points
    59
    Par défaut
    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 ?

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    156
    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 : 156
    Points : 59
    Points
    59
    Par défaut
    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.

  10. #10
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    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
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. [MariaDB] Exécution d'une requête qui doit afficher plusieurs lignes
    Par mrbrams dans le forum MySQL
    Réponses: 0
    Dernier message: 23/12/2014, 09h16
  2. Une requête qui s'exécute toute seule
    Par Rymaya dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 28/11/2011, 14h55
  3. une requête qui selectionne la ligne max
    Par kuhnden dans le forum Access
    Réponses: 3
    Dernier message: 01/11/2005, 18h39
  4. Une requête qui ne reconnait pas is not null
    Par LeBauw dans le forum Access
    Réponses: 2
    Dernier message: 08/09/2005, 12h29
  5. [...] doit utiliser une requête qui peut être mise à jour
    Par requiemforadream dans le forum ASP
    Réponses: 4
    Dernier message: 26/04/2005, 09h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo