Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/02/2011, 16h51   #1
Membre régulier
 
Inscription : octobre 2003
Messages : 212
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 212
Points : 77
Points : 77
Par défaut Logical fragmentation - Fill Factor

Bonjour,

Apres reindexation en changeant le fill factor, j'ai encore des tables qui sont très fragmentées

pour 300 tables, j'ai 30 tables dont la fragmentation logique est supérieure à 80%

J'ai essayé la défragmentation (dbcc IndexDefrag) mais cela n'a rien changé.

La plupart des tables ont des structures assez simple. Par exemple, une des tables qui est fragmentée à 80% contient 2 varchar(5), 4 décimaux (8,2) et 3 entiers. Le nombre de ligne est inférieur à 1000. Chaque table a au moins un index Cluster.

J'ai remarqué que je pouvais résoudre en adaptant un fill factor spécifique. Des fois un fill factor de 90 pouvait réduire la fragmentation. Des fois il faut un fill factor de 10.

La base est hors ligne.

Comment dois je comprendre le fait qu'un fill factor innaproprié augmente la fragmentation de la table ?

Je n'ai pas encore adapté un fill factor spécifique pour l'ensemble des tables fragmentées.

Merci pour votre aide
b_lob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 20h12   #2
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
De manière générale si un index est fragmenté à plus de 30% il est préférable d'utiliser un DBCC REINDEX (sur 2000).

Attention cependant si vous avez des tables de petite taille (nombre de pages faible) car celles-ci resteront fragmentées malgré tout.

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 10h14   #3
Membre régulier
 
Inscription : octobre 2003
Messages : 212
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 212
Points : 77
Points : 77
Est ce que 700 lignes est une petite table ? (4 pages de données) Si oui alors ça va. A partir de combien de page de données, considère t-on une table de taille moyenne ?

En augmentant le fill factor à 90, je diminue la fragmentation au niveau Leaf. En réduisant le fill factor à 10 je diminue la fragmentation au niveau table.
Jamais les deux en même temps

Merci pour votre aide
b_lob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 11h10   #4
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
Citation:
Est ce que 700 lignes est une petite table ? (4 pages de données) Si oui alors ça va. A partir de combien de page de données, considère t-on une table de taille moyenne ?
Oui ca reste une petite table.
Moi je prends systématiquement les tables dont le nombre de pages est supérieur à 1000 (8MB)

Citation:
En augmentant le fill factor à 90, je diminue la fragmentation au niveau Leaf. En réduisant le fill factor à 10 je diminue la fragmentation au niveau table.
Jamais les deux en même temps
Globalement diminuer le FILL FACTOR permet d'éviter le phénomène de split des pages dans l'index (donc la fragmentation) ... en réservant plus de d'espace libre pour les futures données mais peut augmenter considérablement la taille de l'index. Mais cet avantage n'est que temporaire car au fur et à mesure que l'index se remplit, on perd cet espace réservé. Il convient donc de défragmenter l'index régulièrement

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 16h51   #5
Invité régulier
 
Inscription : août 2009
Messages : 22
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 22
Points : 5
Points : 5
Par défaut Script indexdefrag et rebuild ?

Bonjour,


Auriez vous un script pour sql 2000, qui fait un defrag pour les index < 30% et une reconstruction au-delà de 30%.


Merci d'avance
erdoganak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 16h59   #6
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 520
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 520
Points : 3 967
Points : 3 967
Citation:
Envoyé par erdoganak Voir le message
Auriez vous un script pour sql 2000, qui fait un defrag pour les index < 30% et une reconstruction au-delà de 30%.
un lien
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 18h41   #7
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 665
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 665
Points : 8 710
Points : 8 710
Bonjour,

Voyez cette discussion );

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h38.


 
 
 
 
Partenaires

Hébergement Web