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

SQL Oracle Discussion :

Create table et Index


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 17
    Par défaut Create table et Index
    Bonjour,

    je reprend en ce moment un projet de migration de base de données.

    lors de cette migration il y a des créations de tables. dans les scripts qui avaient été ecrit auparavant, la création des tables se faisait en 3 phases :

    Création de la table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE TABLE MA_TABLE1(
    ID NUMBER,
    NOM VARCHAR2 ,
    PRENOM VARCHAR2,
    ...
    );
    Création d'un index :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Create Index IDX_MA_TABLE1 On MA_TABLE1 (ID) TABLESPACE IND_TBS;
    Et enfin création des contraintes sur la table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Alter Table MA_TABLE1 Add Constraint PK_MA_TABLE1 Primary Key (ID) Using Index;
    La question que je me posait est de savoir l'interet d'avoir fait de cette manière? y a t'il un gain de performances ou de temps comparé a cette requete?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE TABLE MA_TABLE1
    ( 
    ID NUMBER
    CONSTRAINT ma_table1_pk PRIMARY KEY using index 
    (create index ma_table1_idx on ma_table1(id) tablespace IDX_TBS), 
    ...
    );
    ou alors est ce que la personne qui a écrit ces scripts n'y connaissait rien et faisait n'importe quoi??

    merci de vos réponses

  2. #2
    Membre éprouvé
    Inscrit en
    Mai 2010
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 107
    Par défaut
    Hello,

    Tout dépendra du mode opératoire pour ta migration.

    Si tu travailles comme ceci:
    1- Création des tables sans contraintes ni index
    2- Chargement des données
    3- Création des index et des contraintes

    Au lieu de comme ceci:
    1- Création des tables sans contraintes ni index
    2- Création des index et des contraintes
    3- Chargement des données


    Tu auras bien évidemment un gain de performances... Le recalcul de l'index ne sera pas effectué après chacun des insert/update.

    Ce qui est totallement logique comme réponse; Oracle travaille beaucoup mois lors des inserts/update, donc sera plus rapide :-)

    Bien à toi,

  3. #3
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Créez deux tables t_method1 et t_method2 en utilisant les deux approches. Regardez ensuite le résultat. Avez vous trouvé la différence ?

  4. #4
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 17
    Par défaut
    j'ai testé les 2 méthodes et je n'ai pas vu de grosses différences entre les 2 (je crée une dizaine de tables sans importer de données du coup c'est pas très étonnant)

    mais bon je suis parti sur la méthode all-in-one je trouve que ca fait plus jolie

  5. #5
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Citation Envoyé par leftyy Voir le message
    j'ai testé les 2 méthodes et je n'ai pas vu de grosses différences entre les 2 (je crée une dizaine de tables sans importer de données du coup c'est pas très étonnant)

    mais bon je suis parti sur la méthode all-in-one je trouve que ca fait plus jolie
    Et avez vous notez une différence dans les noms des indexes pour les clés primaires ?

  6. #6
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Par défaut
    Je pense que c'est plutot une question de lisibilité.
    La structure de la table d'un coté.
    Les constraints dans l'autre.
    etc.

    Plus facile à visualiser je pense...

    Citation Envoyé par mnitu Voir le message
    Et avez vous notez une différence dans les noms des indexes pour les clés primaires ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/04/2013, 10h27
  2. CREATE TABLE et index ?
    Par Evocatii dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 06/12/2010, 10h35
  3. [index fulltext] Can't create table
    Par clemsouz dans le forum Administration
    Réponses: 11
    Dernier message: 16/05/2006, 17h37
  4. Database new user & create table
    Par MFDev dans le forum InterBase
    Réponses: 3
    Dernier message: 30/09/2003, 20h47
  5. Création de table avec index
    Par Seb7 dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/04/2003, 16h11

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