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 ?
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 ?
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 ?
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/ * * * * *
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
Merci pour vos reponses rapides
Voila la requete que j'utilise (avec reporting service)
et voila le resultat
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
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
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/ * * * * *
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
Envoyé par rudib
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager