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

MS SQL Server Discussion :

Création d'index sur tables avec 400000 rows


Sujet :

MS SQL Server

  1. #1
    Membre confirmé Avatar de Poisson59
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 213
    Par défaut Création d'index sur tables avec 400000 rows
    Bonjour,

    Je voulais savoir comment optimiser les index ou comment bien les créés

    voici le script de création d'une table ainsi que la création de l'index.

    Pouvez vous commentez le script est dire si mon index sert a quelquechose

    Merci !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    CREATE TABLE [USER].MATABLE
    (
    	COL1 numeric(10,0) PRIMARY KEY NOT NULL,
    	COL2 numeric(10,0) NOT NULL,
    	COL3 numeric(10,0) NULL,
    	COL4 numeric(10,0) NOT NULL,
    	COL5 numeric(10,0) NULL,
    	COL6 varchar(10) NOT NULL,
    	COL7 datetime NOT NULL,
    	COL8 datetime NOT NULL,
    	COL9 numeric(10,0) NOT NULL,
    	COL10 numeric(10,0) NOT NULL,
    	COL11 datetime NULL,
    	COL12 datetime NULL,
    	COL13 numeric(10,0) NULL
    );
     
    CREATE  INDEX [MATABLE_idx1] ON [USER].[MATABLE]([COL4],[COL5]) ON [PRIMARY];
    CREATE  INDEX [MATABLE_idx2] ON [USER].[MATABLE]([COL4],[COL6]) ON [PRIMARY];
    CREATE  INDEX [MATABLE_idx3] ON [USER].[MATABLE]([COL9],[COL10]) ON [PRIMARY];
    CREATE  INDEX [MATABLE_idx4] ON [USER].[MATABLE]([COL9],[COL6]) ON [PRIMARY];

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Par défaut index.
    Un index n'a de sens que par rapport à une requete particuliere. On pose un index sur les colonnes de jointures, sur les colonnes d'une clause where, sur un order by.
    tu as deux types d'index, le clustered, où la table est trié avec ses données et l'index simple qui fait reference à la table.

    Dans le cas présent, tu n'as pas fournis de requete donc il sera difficile de t'indiquer l'interet de tes index.

    pour information, http://tipssqlserveur2005.blogspot.c...ch/label/Index

  3. #3
    Membre confirmé Avatar de Poisson59
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 213
    Par défaut
    ok
    je vais jeter un oeil sur le lien
    bye

  4. #4
    Membre confirmé Avatar de Poisson59
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 213
    Par défaut
    en faite 90% de mes requêtes se base sur les colonnes COL7 et COL 8
    mais malheurement j'ai 400 000 lignes différentes si je lance la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select distinct COL7, COL8 from MATABLE
    alors est-il nécessaire de faire des index sur ces colonnes ?

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Par défaut indexation & performance.
    Utilise le profiler ( eventuellement le tuning advisor sous 2005 ) pour regarder les temps d'execution de tes requetes...

    Si tu as des problèmes de performance et que tes requetes font de la restriction, du tri sur les colonnes COL7, COL8 alors cree un clustered index avec la cle primaire et ces colonnes.

    n'oublie pas de reindexer regulierement si tu as des mises à jours.

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/08/2012, 14h20
  2. [EG] Création d'index sur tables
    Par hoccha dans le forum Outils BI
    Réponses: 2
    Dernier message: 16/03/2011, 16h19
  3. Réponses: 3
    Dernier message: 01/04/2009, 10h47
  4. Création d'index sur un TTable
    Par bencot dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/03/2005, 13h23
  5. [Sybase] Utilisation indexes sur table Proxy
    Par MashiMaro dans le forum Sybase
    Réponses: 2
    Dernier message: 20/02/2004, 10h20

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