> Tech > Retour d’informations en vue (4)

Retour d’informations en vue (4)

Tech - Par iTPro - Publié le 24 juin 2010
email

Vous pouvez envisager d’utiliser le paramètre final SAMPLED lorsque la table est extrêmement volumineuse, car ce type d’analyse examine 1 pour cent seulement des pages. A la base, SQL Server examine uniquement la première page sur 100 pages pour son échantillonnage. Toutefois, si la table contient moins de 10 000

Retour d’informations en vue  (4)

pages, SQL Server la considère comme trop petite pour le mode SAMPLE et bascule automatiquement la demande en mode DETAILED, puis examine toutes les pages.

Si la table est un segment de mémoire, une analyse par échantillonnage ne fournira pas d’informations sur les fragments ou leur taille. Vous pouvez analyser des fragments uniquement lorsque SQL Server connaît toutes les pages appartenant à une table. Pour une table avec un index ordonné en clusters, les niveaux supérieurs de ce dernier fournissent à SQL Server les informations nécessaires pour déterminer le nombre de fragments et leur taille moyenne, mais dans le cas d’un segment de mémoire, aucune structure supplémentaire ne peut fournir ces indications.

La fonction sys.dm_index_physical_stats() retourne deux informations supplémentaires : forwarded_record_ count et ghost_record_count (ou version_ghost_record_ count). Les enregistrements transmis (forwarded records) sont possibles uniquement dans un segment de mémoire et se produisent lorsque la taille d’une ligne avec des colonnes de longueur variable augmente à la suite de mises à jour et que la ligne n’a plus suffisamment de place pour rester à son emplacement d’origine. Si la ligne était simplement déplacée, tous les pointeurs d’index non ordonné en clusters qui la référençaient devraient être mis à jour, une opération plutôt coûteuse. Au lieu de cela, SQL Server laisse à l’emplacement d’origine un petit pointeur qui indique l’emplacement de la ligne dans une autre page. Si la table comporte de nombreux enregistrements transmis, l’analyse ne sera pas très efficace.

Les enregistrements fantômes sont des lignes qui continuent d’exister physiquement sur une page alors qu’elles ont fait l’objet d’une suppression logique. Tant que les processus en arrière-plan de SQL Server n’ont pas nettoyé ces enregistrements fantômes, aucun nouvel enregistrement ne peut être inséré à l’espace ainsi occupé. Lorsque vous avez de nombreux enregistrements fantômes, votre table présente tous les inconvénients et aucun des avantages de la fragmentation interne.

La valeur ghost_ record_count indique le nombre de lignes qui ont été supprimées, mais qui ne l’ont pas été physiquement au niveau des pages. En général, SQL Server nettoie ces lignes relativement efficacement. Le compteur version_ghost_ record_count indique le nombre de lignes conservées par une transaction d’isolation d’instantané en suspens. La thread de nettoyage en arrière-plan ne nettoiera pas ces lignes tant que les transactions pertinentes n’auront pas été validées ou annulées.

Téléchargez gratuitement cette ressource

IBMi et Cloud : Table ronde Digitale

IBMi et Cloud : Table ronde Digitale

Comment faire évoluer son patrimoine IBMi en le rendant Cloud compatible ? Comment capitaliser sur des bases saines pour un avenir serein ? Faites le point et partagez l'expertise Hardis Group et IBM aux côtés de Florence Devambez, DSI d'Albingia.

Tech - Par iTPro - Publié le 24 juin 2010