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 :

Estimation du taux de fragmentation des index


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Inscrit en
    Mai 2008
    Messages
    686
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 686
    Par défaut Estimation du taux de fragmentation des index
    Bonjour à tous,

    J'effectue plusieurs tests actuellement afin d'obtenir un taux de fragmentation de mes tables suites à des mouvements de données.
    Les mesures sont récupérées après REBUILD puis une insertion d'un lot de données #1 et une insertion d'un lot de données #2 qui reproduisent mes mouvements du weekend.


    Lire #4 pour la fin de l'histoire

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 999
    Billets dans le blog
    6
    Par défaut
    et alors ???
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre émérite
    Inscrit en
    Mai 2008
    Messages
    686
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 686
    Par défaut
    J'ai été présomptueux sur le résultat de ma requête, je reformule tout ça demain matin.

  4. #4
    Membre émérite
    Inscrit en
    Mai 2008
    Messages
    686
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 686
    Par défaut
    Re bonjour,

    Désolé d'avoir créé un message incomplet.
    Voici les requêtes que j'utilise en ce moment pour analyser mes indexs. Suite à mon message "Réindexation" sur ce même forum, j'ai voulu évaluer pourquoi et comment mes index se fragmentaient, notamment à quelle vitesse.


    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
     
    --- Requête #1 utilisée régulièrement pour visualiser l'effet des reconstructions et qui d'après ce que j'ai lu était utilisée sous SQL2000----
    USE MaBase
    DBCC SHOWCONTIG  ('MaTable');
    GO
     
    ---- résultat #1----
    DBCC SHOWCONTIG analyse la table 'MaTable'...
    Table*: 'MaTable' (494390022)*; index ID*: 1, base de données ID*: 5
    Analyse du niveau TABLE effectuée.
    - Pages analysées................................: 1070834
    - Extensions analysées..............................: 133867
    - Commutateurs d'extension..............................: 134456
    - Moyenne des pages par extension........................: 8.0
    - Densité d'analyse [meilleure valeur:valeur réelle].......: 99.55% [133855:134457]
    - Fragmentation d'analyse logique..................: 0.19%
    - Fragmentation d'analyse d'extension...................: 21.67%
    - Moyenne d'octets libres par page.....................: 554.6
    - Densité de page moyenne (complète).....................: 93.15%
    Exécution de DBCC terminée. Si DBCC vous a adressé des messages d'erreur, contactez l'administrateur système.
     
    ---- requête #2 utilisée lors de nos plans de maintenance pour le calcul des index depuis SQL2005
     
    DECLARE @maxfrag    Int
    SELECT @maxfrag = 5
    SELECT object_id, index_id, avg_fragmentation_in_percent
    FROM sys.dm_db_index_physical_stats (DB_ID('MaBase')
    ,OBJECT_ID('MaTable')
    ,NULL 
    ,NULL
    ,'DETAILED')
    WHERE avg_fragmentation_in_percent > CONVERT(CHAR(2),@maxfrag) and Index_id > 0
    ORDER BY CONVERT(DECIMAL(9,2),avg_fragmentation_in_percent) DESC;
     
    ---- résultat #2----
    object_id                    index_id                 avg_fragmentation_in_percent
    494390022	          1	                        96,2962962962963
    494390022	          2	                        50
    494390022	          1	                        11,5730337078652
    494390022	          2	                        10,8540925266904
    Les index de la table sont analysés et sortent deux résultats différents. Or avec le code #2 certains de mes index semblent continuellement fragmentés (en fonction de la table et de leur utilisation évidemment).
    Du coup la reconstruction parait inefficace en fonction de la méthode d'analyse (visible sur la #1 et mitigé sur la #2).

    Je dois mal interpréter ces résultats, est ce le cas ?

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 999
    Billets dans le blog
    6
    Par défaut
    tout dépend de la taille d'un index. La fragmentation est calculée à l'extent. Un index de 8 pages ou moins sera donc toujours fragmenté !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 139
    Par défaut
    Bonjour,

    Mais à partir de combien de pages peut-on considérer que le taux de fragmentation d'un index devient "représentatif" et appel à une maintenance (Rebuild ou Reorganize) ?

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

Discussions similaires

  1. Fragmentation des index
    Par john94260 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 13/05/2014, 13h07
  2. Estimer le taux de croissance des archivelog
    Par Dajon dans le forum Administration
    Réponses: 2
    Dernier message: 20/12/2011, 10h34
  3. Comment estimer la taille des index
    Par ouadie99 dans le forum Administration
    Réponses: 1
    Dernier message: 01/12/2008, 15h12
  4. Réponses: 4
    Dernier message: 16/03/2004, 14h16
  5. [Technique] Intérêt des index
    Par ddams dans le forum Décisions SGBD
    Réponses: 10
    Dernier message: 04/11/2002, 15h11

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