在SQL Server中,你可以使用以下幾種方法來(lái)查看表空間的大?。?/p>
EXEC sp_spaceused;
SELECT
OBJECT_NAME(object_id) AS [TableName],
SUM(used_page_count) * 8 AS [TableSizeKB]
FROM
sys.dm_db_partition_stats
WHERE
index_id IN (0, 1) -- 0 是堆表,1 是聚集索引
GROUP BY
object_id
ORDER BY
[TableSizeKB] DESC;
這個(gè)查詢(xún)會(huì)返回每個(gè)表的名稱(chēng)和占用空間的大小,以KB為單位。
SELECT
OBJECT_NAME(object_id) AS [TableName],
SUM(total_pages) * 8 AS [TableSizeKB]
FROM
sys.allocation_units
WHERE
type IN (1, 3) -- 1 是 IN_ROW_DATA 用于表和索引,3 是 LOB_DATA 用于大型對(duì)象(例如:文本和圖像)
GROUP BY
object_id
ORDER BY
[TableSizeKB] DESC;
這個(gè)查詢(xún)會(huì)返回每個(gè)表的名稱(chēng)和占用空間的大小,以KB為單位。
請(qǐng)注意,以上方法返回的空間大小是近似值,并且可能與在操作系統(tǒng)級(jí)別上報(bào)告的空間大小有所不同。這是因?yàn)镾QL Server使用頁(yè)來(lái)管理數(shù)據(jù),并且在頁(yè)面分配和釋放時(shí)會(huì)有一些額外的開(kāi)銷(xiāo)。