データベースの肥大化を防ぐ!SQLでテーブルのサイズを簡単に確認する方法
SQLでテーブルのサイズを確認する方法
ここでは、SQLを使ってテーブルのサイズを確認する方法を2種類ご紹介します。
方法1:情報スキーマテーブルを利用する
ほとんどのデータベースシステムには、情報スキーマと呼ばれる特別なスキーマが用意されています。このスキーマには、データベース内のすべてのオブジェクトに関する情報が格納されており、テーブルのサイズも確認できます。
以下は、情報スキーマテーブルを使ってテーブルのサイズを確認する例です。
SELECT
TABLE_NAME,
TABLE_SCHEMA,
ROUND(SUM(DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS TABLE_SIZE_MB
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'YOUR_SCHEMA_NAME'
AND TABLE_NAME = 'YOUR_TABLE_NAME'
GROUP BY TABLE_NAME, TABLE_SCHEMA;
このクエリは、YOUR_SCHEMA_NAME
スキーマにあるYOUR_TABLE_NAME
テーブルのサイズをMB単位で表示します。
方法2:システムビューを利用する
一部のデータベースシステムでは、情報スキーマテーブルではなく、システムビューを使ってテーブルのサイズを確認できます。
以下は、システムビューを使ってテーブルのサイズを確認する例です(PostgreSQLの場合)。
SELECT
pg_size_pretty(pg_table_size('YOUR_TABLE_NAME')) AS TABLE_SIZE
FROM pg_tables
WHERE tablename = 'YOUR_TABLE_NAME';
このクエリは、YOUR_TABLE_NAME
テーブルのサイズを可読形式で表示します。
補足
- 上記のクエリはあくまでも例であり、使用するデータベースシステムによって構文が異なる場合があります。
- テーブルのサイズは、データの格納方法や圧縮設定などによって異なる場合があります。
- より詳細な情報については、データベースシステムのマニュアルを参照してください。
SELECT
TABLE_NAME,
TABLE_SCHEMA,
ROUND(SUM(DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS TABLE_SIZE_MB
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'YOUR_SCHEMA_NAME'
AND TABLE_NAME = 'YOUR_TABLE_NAME'
GROUP BY TABLE_NAME, TABLE_SCHEMA;
説明
- 以下、各行の意味を説明します。
TABLE_NAME
: テーブル名TABLE_SCHEMA
: スキーマ名TABLE_SIZE_MB
: テーブルサイズ (MB)
例
SELECT
TABLE_NAME,
TABLE_SCHEMA,
ROUND(SUM(DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS TABLE_SIZE_MB
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'public'
AND TABLE_NAME = 'customers'
GROUP BY TABLE_NAME, TABLE_SCHEMA;
この例では、public
スキーマにあるcustomers
テーブルのサイズを確認します。
SQLでテーブルのサイズを確認する方法(その他)
SQL Serverでは、sp_space
システムプロシージャを使ってテーブルのサイズを確認できます。
EXEC sp_space @dbname = 'YOUR_DATABASE_NAME', @objname = 'YOUR_TABLE_NAME'
このプロシージャは、指定されたデータベースとテーブルに関する様々な情報を返します。テーブルサイズを確認するには、DataSize
列の値を確認します。
MySQLでは、INFORMATION_SCHEMA.TABLE_STATISTICS
テーブルを使ってテーブルのサイズを確認できます。
SELECT
TABLE_NAME,
TABLE_SCHEMA,
ROUND(SUM(INDEX_LENGTH + DATA_LENGTH) / 1024 / 1024, 2) AS TABLE_SIZE_MB
FROM INFORMATION_SCHEMA.TABLE_STATISTICS
WHERE TABLE_SCHEMA = 'YOUR_SCHEMA_NAME'
AND TABLE_NAME = 'YOUR_TABLE_NAME'
GROUP BY TABLE_NAME, TABLE_SCHEMA;
方法4:データベース管理ツールを利用する
多くのデータベースシステムには、GUIベースのデータベース管理ツールが付属しています。これらのツールを使って、テーブルのプロパティを表示し、サイズを確認することができます。
- SQL Server Management Studio (SSMS)
- MySQL Workbench
- PostgreSQL pgAdmin
留意点
- 上記の方法で取得できるサイズは、テーブルデータだけでなく、インデックスやその他の関連データも含めたものです。
- より正確なデータファイルのサイズは、オペレーティングシステムのツールを使って確認する必要があります。
sql