Pouvons-nous avoir une requête SQL qui aidera fondamentalement à visualiser les tailles de table et d’index dans SQl Server.
Comment le serveur SQL maintient-il l'utilisation de la mémoire pour les tables / index?
Pouvons-nous avoir une requête SQL qui aidera fondamentalement à visualiser les tailles de table et d’index dans SQl Server.
Comment le serveur SQL maintient-il l'utilisation de la mémoire pour les tables / index?
sp_spaceused vous donne la taille de tous les index combinés.
Si vous voulez la taille de chaque index pour une table, utilisez l'une des deux requêtes suivantes:
SELECT
i.name AS IndexName,
SUM(s.used_page_count) * 8 AS IndexSizeKB
FROM sys.dm_db_partition_stats AS s
JOIN sys.indexes AS i
ON s.[object_id] = i.[object_id] AND s.index_id = i.index_id
WHERE s.[object_id] = object_id('dbo.TableName')
GROUP BY i.name
ORDER BY i.name
SELECT
i.name AS IndexName,
SUM(page_count * 8) AS IndexSizeKB
FROM sys.dm_db_index_physical_stats(
db_id(), object_id('dbo.TableName'), NULL, NULL, 'DETAILED') AS s
JOIN sys.indexes AS i
ON s.[object_id] = i.[object_id] AND s.index_id = i.index_id
GROUP BY i.name
ORDER BY i.name
Les résultats sont généralement légèrement différents mais inférieurs à 1%.
Le paramètre exec sp_spaceused sans paramètre affiche le résumé de la base de données entière. La solution foreachtable génère un jeu de résultats par table - ce que SSMS ne pourra peut-être pas gérer si vous avez trop de tables.
J'ai créé un script qui collecte les informations de la table via sp_spaceused et affiche un résumé dans un seul jeu d'enregistrements, trié par taille.
Il y a une procédure stockée étendue sp_spaceused
qui obtient cette information. C'est assez alambiqué pour le faire à partir du dictionnaire de données, mais Ce lien de fans à un script qui le fait. Cette stackoverflow question a une fan-out de l'information sur la sous-jacentes des structures de données que vous pouvez utiliser pour établir des estimations de table et d'index tailles pour capcity de planification.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.