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.
Sécuriser sa téléphonie IP n’est plus une option. Avec la généralisation de la téléphonie cloud et des infrastructures VoIP, la voix circule désormais sur les mêmes réseaux que les données…
Passez à la cybersécurité proactive, transformez la collecte et l’analyse des logs en un bouclier dynamique contre les cybermenaces. Découvrez comment mettre en place une approche SIEM modulaire, évolutive et…