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

Requêtes PostgreSQL Discussion :

CREATE TABLE AS ou pas ? telle est ma question


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2010
    Messages : 59
    Points : 86
    Points
    86
    Par défaut CREATE TABLE AS ou pas ? telle est ma question
    Bonjour,

    Je suis sur un script d'extraction, j'ai un souci au niveau de la création d'une table, je dois mettre un index car beaucoup de données "joiniable" par un seul champs:

    soit je fais un create table AS select... puis j'ajoute un index

    soit je fait un create table avec l'index puis je fait un insert de mon select...

    le traitement général c'est de créer 5 tables avec le même champs en commun
    et du coup de faire une jointure.

    Merci pour vos réponses.
    Cordialement,

    David.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Il manque la question mais j'imagine que c'est "quel est le plus rapide"?
    En principe ça devrait être le CREATE TABLE as select suivi de la création d'index.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2010
    Messages : 59
    Points : 86
    Points
    86
    Par défaut
    Effectivement il manquait la question..
    Merci pour cette rapidité.

    Si je reste sur le create as, ça n'a pas d'impact sur la création de l'index si ma table contient plus d'un million d'entrées?
    Cordialement,

    David.

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par davly Voir le message
    Si je reste sur le create as, ça n'a pas d'impact sur la création de l'index si ma table contient plus d'un million d'entrées?
    C'est juste un peu plus long que s'il n'y avait que 1000 lignes !
    Mais dans un cas comme dans l'autre, il faudra bien indexer ce million de lignes alors autant le faire en une seule fois après avoir inséré toutes les données.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    S'il y a un impact de la créa d'index après chargement, il serait plutôt positif.
    Car il est plus facile de produire un index équilibré en ayant toutes les données sous la main avec une table verrouillée en écriture qu'en insérant ligne par ligne.

    le create index utilisera aussi un buffer mémoire spécifique réglable avec maintenance_work_mem

    Enfin il y a dans la doc divers conseils pour le scénario du chargement en masse:
    https://postgresql.developpez.com/do...tion/francais/

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2010
    Messages : 59
    Points : 86
    Points
    86
    Par défaut
    merci beaucoup pour ces réponses.
    Cordialement,

    David.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Serveur ou pas telle est la question ?
    Par Schawy dans le forum Achat et Conseils
    Réponses: 1
    Dernier message: 14/05/2012, 17h04
  2. Logique ou pas logique ? Telle est la question
    Par Milo59000 dans le forum SQL
    Réponses: 4
    Dernier message: 20/06/2008, 23h03
  3. [Foot] Gomis ou pas Gomis : telle est la question
    Par mr_samurai dans le forum La taverne du Club : Humour et divers
    Réponses: 20
    Dernier message: 13/06/2008, 15h56
  4. create table ne passe pas
    Par artotal dans le forum Requêtes
    Réponses: 3
    Dernier message: 13/06/2006, 16h54

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