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

Administration SQL Server Discussion :

Optimisation Index SQL SERVER 2008 R2


Sujet :

Administration SQL Server

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 9
    Par défaut Optimisation Index SQL SERVER 2008 R2
    Bonjour à tous,

    J'ai des soucis de lenteur dans une de mes applications sous SQL server 2008 R2.

    J'ai exécuté la requête suivante pour trouver les index qui manquent :

    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
    SELECT  sys.objects.name, CONVERT(int,(avg_total_user_cost * avg_user_impact * 0.01) * (user_seeks + user_scans)) AS Impact
    ,  'CREATE NONCLUSTERED INDEX ix_IndexName ON ' + sys.objects.name COLLATE DATABASE_DEFAULT + ' ( ' + IsNull(mid.equality_columns, '') 
    + CASE WHEN mid.inequality_columns IS NULL THEN '' ELSE CASE WHEN mid.equality_columns IS NULL THEN '' ELSE ',' END 
    + mid.inequality_columns END + ' ) ' + CASE WHEN mid.included_columns IS NULL THEN ''  ELSE 'INCLUDE (' + mid.included_columns + ')' END 
    + ';' AS CreateIndexStatement, mid.equality_columns, mid.inequality_columns, mid.included_columns
    FROM sys.dm_db_missing_index_group_stats AS migs
    INNER JOIN sys.dm_db_missing_index_groups AS mig ON migs.group_handle = mig.index_group_handle
    INNER JOIN sys.dm_db_missing_index_details AS mid ON mig.index_handle = mid.index_handle AND mid.database_id = DB_ID()
    INNER JOIN sys.objects WITH (nolock) ON mid.OBJECT_ID = sys.objects.OBJECT_ID
    WHERE     (migs.group_handle IN
    (
    SELECT     TOP (500) group_handle
    FROM          sys.dm_db_missing_index_group_stats WITH (nolock)
    ORDER BY (avg_total_user_cost * avg_user_impact) * (user_seeks + user_scans) DESC)) 
    AND OBJECTPROPERTY(sys.objects.OBJECT_ID, 'isusertable')=1
    J’obtiens le résultat suivant pour une de mes tables



    La question que je pose est : Est ce que je doit créer les 3 index pour la même table ou le fait de créer le premier diminuera l'impact des 2 autres ?

    Par ailleurs, à partir de quel impact peut-on considérer qu'un index est vraiment nécessaire?

    La requête me ramène en fait 540 lignes de création d'index avec des impacts allant de 1 à 800.000

    Merci d'avance pour vos réponses.
    Images attachées Images attachées  

Discussions similaires

  1. Optimisation de la configuration d'une BD sql server 2008
    Par mizowmizow dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 03/09/2014, 11h29
  2. SQL Server 2008 - index unique ou non unique ?
    Par drouhne dans le forum Administration
    Réponses: 3
    Dernier message: 12/10/2010, 15h45
  3. [Sql Server 2008] Optimisation requête
    Par lucie.houel dans le forum Développement
    Réponses: 8
    Dernier message: 15/04/2010, 18h59
  4. [SQL Server 2008] optimisation recherche dans table
    Par dingo200 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/05/2009, 10h22
  5. Lot DTS et Index [SQL Server 2K]
    Par guandal dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/06/2007, 10h09

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