Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL > Requêtes
Requêtes Forum d'entraide sur les requêtes SQL spécifiques à PostgreSQL, les triggers, les vues, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/09/2011, 11h21   #1
Membre régulier
 
Homme David LY
Développeur Java
Inscription : avril 2010
Messages : 58
Détails du profil
Informations personnelles :
Nom : Homme David LY
Âge : 26
Localisation : France, Val de Marne (Île de France)

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

Informations forums :
Inscription : avril 2010
Messages : 58
Points : 70
Points : 70
Envoyer un message via MSN à davly
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.
davly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 11h44   #2
Modérateur
 
Inscription : octobre 2008
Messages : 1 508
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 508
Points : 2 040
Points : 2 040
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.
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/09/2011, 12h07   #3
Membre régulier
 
Homme David LY
Développeur Java
Inscription : avril 2010
Messages : 58
Détails du profil
Informations personnelles :
Nom : Homme David LY
Âge : 26
Localisation : France, Val de Marne (Île de France)

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

Informations forums :
Inscription : avril 2010
Messages : 58
Points : 70
Points : 70
Envoyer un message via MSN à davly
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?
davly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 13h57   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 029
Points : 18 324
Points : 18 324
Envoyer un message via MSN à CinePhil
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 de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/09/2011, 14h03   #5
Modérateur
 
Inscription : octobre 2008
Messages : 1 508
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 508
Points : 2 040
Points : 2 040
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:
http://docs.postgresql.fr/9.0/populate.html
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 21/09/2011, 14h26   #6
Membre régulier
 
Homme David LY
Développeur Java
Inscription : avril 2010
Messages : 58
Détails du profil
Informations personnelles :
Nom : Homme David LY
Âge : 26
Localisation : France, Val de Marne (Île de France)

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

Informations forums :
Inscription : avril 2010
Messages : 58
Points : 70
Points : 70
Envoyer un message via MSN à davly
merci beaucoup pour ces réponses.
davly est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h58.


 
 
 
 
Partenaires

Hébergement Web