16

T-SQL を使用して、テーブルが行を格納するために使用している 8K ページの数を表示できますか?

また、データベースが使用している 8K ページの数を確認できますか?

4

2 に答える 2

28

次のようなことを試してください:

-- Total # of pages, used_pages, and data_pages for a given heap/clustered index
SELECT 
    t.NAME AS TableName,
    p.rows AS RowCounts,
    SUM(a.total_pages) AS TotalPages, 
    SUM(a.used_pages) AS UsedPages, 
    (SUM(a.total_pages) - SUM(a.used_pages)) AS UnusedPages
FROM 
    sys.tables t
INNER JOIN      
    sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN 
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN 
    sys.allocation_units a ON p.partition_id = a.container_id
WHERE 
    t.NAME NOT LIKE 'dt%' 
    AND t.is_ms_shipped = 0
    AND i.OBJECT_ID > 255 
GROUP BY 
    t.Name, p.Rows
ORDER BY 
    t.Name

テーブルで使用されているページ (使用済み、未使用、合計) が表示されます。

データベース全体については、各テーブルのページを合計し、データベースごとに繰り返します。

于 2012-08-14T06:53:57.933 に答える