0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SSMSでDBサイズ、Tableサイズを確認する

Posted at

はじめに

SQL Serverにて、DBサイズ、およびTableサイズの確認方法をまとめました。

DBサイズ確認

実行クエリ

DBサイズは以下のクエリで確認することができます。

SELECT 
    s.name AS schema_name,
    SUM(a.total_pages) * 8 / 1024.0 AS size_MB
FROM 
    sys.tables t
JOIN 
    sys.schemas s ON t.schema_id = s.schema_id
JOIN 
    sys.indexes i ON t.object_id = i.object_id
JOIN 
    sys.partitions p ON i.object_id = p.object_id AND i.index_id = p.index_id
JOIN 
    sys.allocation_units a ON p.partition_id = a.container_id
GROUP BY 
    s.name
ORDER BY 
    size_MB DESC;
  • sys.tables:ユーザーテーブルの一覧
  • sys.schemas:スキーマ名の取得
  • total_pages * 8 / 1024.0:ページ数(1ページ = 8KB)をMBに変換
    ※GBに変換したい場合は、total_pages * 8 / 1024.0 / 1024.0

実行結果

DBが'dbo'という名前の場合、以下のような結果が返ってきます。

schema_name size_MB
1 dbo 432.1

Tableサイズ確認

実行クエリ

Tableサイズは以下のクエリで確認することができます。

SELECT 
    s.name AS schema_name,
    t.name AS table_name,
    SUM(p.rows) AS table_rows,
    SUM(a.total_pages) * 8 / 1024.0 AS all_mb,
    SUM(a.data_pages) * 8 / 1024.0 AS data_mb,
    (SUM(a.total_pages) - SUM(a.data_pages)) * 8 / 1024.0 AS index_mb
FROM 
    sys.tables t
JOIN 
    sys.schemas s ON t.schema_id = s.schema_id
JOIN 
    sys.indexes i ON t.object_id = i.object_id
JOIN 
    sys.partitions p ON i.object_id = p.object_id AND i.index_id = p.index_id
JOIN 
    sys.allocation_units a ON p.partition_id = a.container_id
GROUP BY 
    s.name, t.name
ORDER BY 
    all_mb DESC;
  • schema_name:テーブルが属するスキーマ名
  • table_name:テーブル名
  • table_rows:テーブルの行数(概算)
  • all_mb:データ+インデックスの合計サイズ(MB)
  • data_mb:データ部分のサイズ(MB)
  • index_mb:インデックス部分のサイズ(MB)
    ※こちらもGBに変換したい場合は、1024で割る

実行結果

'dbo'というDBに'JINJI'、'LOG'という名前のテーブルがある場合、以下のような結果が返ってきます。

schema_name table_name table_rows all_mb data_mb index_mb
1 dbo JINJI 1334 2.828125 0.296875 2.531250
2 dbo LOG 72843 679.875000 166.257812 513.617187
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?