查询每个表size的sql

来源:互联网 发布:js面向对象编程教程 编辑:程序博客网 时间:2024/06/05 08:14

SELECT     t.NAME AS TableName,    s.Name AS SchemaName,    p.rows AS RowCounts,    SUM(a.total_pages) * 8 AS TotalSpaceKB,     SUM(a.used_pages) * 8 AS UsedSpaceKB,     (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKBFROM     sys.tables tINNER JOIN          sys.indexes i ON t.OBJECT_ID = i.object_idINNER JOIN     sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_idINNER JOIN     sys.allocation_units a ON p.partition_id = a.container_idLEFT OUTER JOIN     sys.schemas s ON t.schema_id = s.schema_idWHERE     t.NAME NOT LIKE 'dt%'     AND t.is_ms_shipped = 0    AND i.OBJECT_ID > 255 GROUP BY     t.Name, s.Name, p.RowsORDER BY     t.Name

上面的query返回的size包含index。  关于allocation unit的概念, 可以参考下面的link。

https://technet.microsoft.com/en-us/library/ms189051%28v=sql.105%29.aspx?f=255&MSPPError=-2147217396

0 0
原创粉丝点击