SQL Serverでテーブルスペースのサイズを確認する方法は何ですか?

SQL Serverでテーブルスペースのサイズを表示するために以下の方法を使用できます:

  1. sp_spaceusedというシステムストアドプロシージャを使用すると、データベース内のすべてのテーブルのスペース使用状況を取得できます。次のクエリをクエリウィンドウで実行することで、テーブルのスペースサイズ情報を取得できます。
EXEC sp_spaceused;
  1. sys.dm_db_partition_stats ビューを使用する:このビューは、データベース内のすべてのテーブルとインデックスのパーティション統計情報を返すことができます。表スペースのサイズ情報を取得するために次のクエリを使用できます。
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;

このクエリは、各テーブルの名前と使用空間のサイズ(KB単位)を返します。

  1. sys.allocation_unitsというシステムビューを使用すると、データベース内のすべての割り当てユニットに関する情報を取得できます。これにはテーブル、インデックス、ヒープの割り当てユニットが含まれます。表領域のサイズ情報を取得するためには、以下のクエリを使用できます。
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 用于大型对象(例如:文本和图像)
GROUP BY 
    object_id
ORDER BY 
    [TableSizeKB] DESC;

このクエリは、各表の名前と使用されているスペースのサイズ(KB単位)を返します。

注意してください、上記の方法で返されるスペースサイズはおおよその値であり、オペレーティングシステムのレベルで報告されるスペースサイズとは異なる可能性があります。これは、SQL Serverがデータを管理するためにページを使用し、ページの割り当てと解放時に追加のオーバーヘッドが発生するためです。

bannerAds