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 :

Fragmentation d'Index jamais inferieur a 50 % ?


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 21
    Points : 11
    Points
    11
    Par défaut Fragmentation d'Index jamais inferieur a 50 % ?
    Bonjour,

    Comment expliquez vous que sur certain index je n'arrive pas a descendre a moins de 50% que ce soit avec une reoganisation d'index ou une reconstruction ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Quel type d'index ? CLUSTERED ou NONCLUSTERED ?
    Quelle taille des champs indexés ? Combien de champs indexés pour un index ? Quel fillfactor appliqué pour un index ? Quantité de données dans la table correspondante ?

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    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 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    si votre index est petit il peut meme etre beaucoup plus fragmete que cela car le calcul s'effectue a l'extension soit 8 pages de 8 Ko>

    Autrement dit une table de 10 ligne, bien indexee sera TRES fragememte sans aucune consequences !!!
    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/ * * * * *

  4. #4
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Il me semble que sys.dm_db_index_physical_stats a fâcheusement tendance à ne pas considérer le fillfactor dans son calcul de fragmentation, et cela doit se répercuter sur les pages de propriété de SSMS. A vérifier.
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 21
    Points : 11
    Points
    11
    Par défaut
    Merci pour vos reponses rapides



    Voila la requete que j'utilise (avec reporting service)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT     so.name, i.name as nomindex , ips.avg_fragmentation_in_percent, i.allow_page_locks
    FROM         sys.dm_db_index_physical_stats(NULL, NULL, NULL, NULL, NULL) AS ips INNER JOIN
                          sys.indexes AS i ON i.object_id = ips.object_id AND i.index_id = ips.index_id 
    inner join sys.objects so on i.object_id = so.object_id
    WHERE     (avg_fragmentation_in_percent > 5 or  i.allow_page_locks=0)
    order by so.name
    et voila le resultat

    Objet Index % Frag
    tAMarchesAvenants idEntreprise 50,00 Non cluster
    tAMarchesAvenants idMarcheParents 50,00 Non cluster
    tAMarchesAvenants idAgence 50,00 Non cluster
    tAPaiement idMarcheAvenents 50,00 Non cluster
    tAPaiement idAgence 50,00 Non cluster
    tCListeDeductionPaiement idDeductionPaiement 7,50 Non cluster
    tCListeDeductionPaiement PK_tListeDeductionPaiement 70,00 Cluster
    tCListeDeductionPaiement PK_tListeDeductionPaiement 87,50 Cluster
    tCListeDeductionPaiement PK_tListeDeductionPaiement 66,67 Cluster


    taux remp : 0
    taille : bigtint
    1 seul champs indexe par index

    nb ligne dans la table :
    tAMarchesAvenants 575
    tAPaiement 628
    tCListeDeductionPaiement 42400


    désolé pour le retard

    ce que je n'arrive pas a m'expliquer c'est pourquoi je retrouve 3x PK_tListeDeductionPaiement alors que c'est ma cle primaire et que 'lindex est bien present une seule fois

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    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 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    Pour vos deux premiers index la frag est logiaue, car comme je vous 'ai dit ils ne contiennent pratiquement rien !

    por votre probleme de redondance, je pense si;plement que votre requete est fausse>

    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/ * * * * *

  7. #7
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Pour la redondance, sys.dm_db_index_physical_stats retourne une ligne par niveau de la clé, ou par partition. Tu dois avoir une pk composite.

    Pour la fragmentation, c'est peut-être aussi dû au fillfactor.
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 21
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par rudib
    Pour la redondance, sys.dm_db_index_physical_stats retourne une ligne par niveau de la clé, ou par partition. Tu dois avoir une pk composite.

    Pour la fragmentation, c'est peut-être aussi dû au fillfactor.

    a quoi sert ce fillfactor ?

    je n'ai pas de cle composite. et une seule partition. de plus c'est une PK donc impossible de modifier ces aspects

Discussions similaires

  1. Fragmentation des index
    Par john94260 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 13/05/2014, 13h07
  2. [SQL2008] Fragmentation et Index
    Par mbsl1 dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 30/04/2013, 17h51
  3. [2K5] Fragmentation d'Index
    Par Monstros Velu dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 05/01/2010, 13h30
  4. Grosse Fragmentation sur indexes
    Par snach dans le forum Administration
    Réponses: 4
    Dernier message: 04/12/2009, 12h44
  5. Estimation du taux de fragmentation des index
    Par Mothership dans le forum Administration
    Réponses: 6
    Dernier message: 01/02/2009, 11h00

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