このトピックでは、内部テーブルのストレージサイズをクエリするために使用できる Hologres テーブルストレージ関数について説明します。
関数 | 説明 |
現在のデータベースのストレージサイズをクエリします。 | |
テーブルのストレージサイズをクエリします。 | |
データやバイナリログのストレージサイズなど、テーブルのストレージの詳細をクエリします。 |
PG_DATABASE_SIZE
説明: 現在のデータベースのストレージサイズをクエリします。
SELECT PG_DATABASE_SIZE('database_name');パラメーター:
database_name: 必須。 現在のデータベースの名前。
戻り値:
現在のデータベース内のすべてのテーブルのサイズの合計と、現在のデータベースで生成された先行書き込みログ (WAL) ログのサイズが返されます。
例:
SELECT PG_SIZE_PRETTY(PG_DATABASE_SIZE(CURRENT_DATABASE()));
PG_RELATION_SIZE
説明: テーブルのストレージサイズをクエリします。
SELECT PG_RELATION_SIZE('table_name');PG_RELATION_SIZE関数は、テーブルのストレージサイズを収集するために使用されます。 メトリックは、インスタンスの Pangu ストレージディレクトリに保存されているファイルのストレージサイズを収集するために使用されます。 これらのファイルには、テーブル、メタデータファイル、および書き込み、更新、削除操作によって生成された一時ファイルが含まれます。 その結果、メトリックを使用して収集されたファイルのストレージサイズは、PG_RELATION_SIZE関数を使用してクエリされたテーブルのストレージサイズよりもわずかに大きくなります。制限:
Hologres V1.3.24 以降でのみ、この関数を使用して、バイナリロギングが有効になっている Hologres テーブルのストレージサイズをクエリできます。
説明Hologres インスタンスのバージョンが V1.3.24 より前の場合は、Hologres インスタンスを手動でアップグレードするか、Hologres DingTalk グループに参加してテクニカルサポートに連絡してください。 インスタンスのアップグレード方法の詳細については、「インスタンスのアップグレード」をご参照ください。 オンラインサポートの入手方法の詳細については、「Hologres のオンラインサポートを受ける」をご参照ください。
内部テーブルのストレージサイズのみをクエリできます。 親パーティションテーブルのストレージサイズを直接クエリすることはできません。 代わりに、子パーティションテーブルのストレージサイズをクエリできます。
パラメーター:
table_name: ストレージサイズをクエリするテーブルの名前。
戻り値:
STRING 型の値が返されます。 戻り値は、テーブルが現在占有しているメモリ空間と物理ディスク空間の合計サイズを示します。
子パーティションテーブルを指定せずに、親パーティションテーブルのストレージサイズを直接クエリすると、値 0 が返されます。
テーブルのストレージサイズが 0 の場合、null 値が返されます。
例:
以下の例では、汎用集計関数のサンプルデータを使用します。
単一テーブルのストレージサイズをクエリします。
-- 単一テーブルのストレージサイズをクエリします。 SELECT PG_SIZE_PRETTY(PG_RELATION_SIZE('example_table'));データベース内のすべてのテーブルのストレージサイズをクエリします。
SELECT table_schema || '.' || table_name AS table_full_name, PG_SIZE_PRETTY(PG_RELATION_SIZE(QUOTE_IDENT(table_schema) || '.' || QUOTE_IDENT(table_name))) AS table_size, PG_RELATION_SIZE(QUOTE_IDENT(table_schema) || '.' || QUOTE_IDENT(table_name)) AS order_size FROM information_schema.tables WHERE table_schema NOT IN ('pg_catalog','information_schema','hologres') ORDER BY order_size DESC;
HOLOGRES.HG_RELATION_SIZE
説明: データやバイナリログのストレージサイズなど、テーブルのストレージの詳細をクエリします。
SELECT HOLOGRES.HG_RELATION_SIZE('schema.table'[, 'type']) ;制限:
Hologres V2.1 以降でのみ、この関数がサポートされています。
説明Hologres インスタンスのバージョンが V2.1 より前の場合は、Hologres インスタンスを手動でアップグレードするか、Hologres DingTalk グループに参加してテクニカルサポートに連絡してください。 インスタンスのアップグレード方法の詳細については、「インスタンスのアップグレード」をご参照ください。 オンラインサポートの入手方法の詳細については、「Hologres のオンラインサポートを受ける」をご参照ください。
パラメーター:
schema.table: このパラメーターでは、schema はテーブルが属するスキーマの名前を指定し、table はテーブル名を指定します。
type: オプション。 有効な値:
data: テーブル内のデータのストレージサイズがクエリされます。
binlog: テーブルのバイナリログのストレージサイズがクエリされます。
mv: テーブルに対してマテリアライズドビューが作成されている場合、マテリアライズドビューのストレージサイズがクエリされます。
all: テーブルの合計ストレージサイズがクエリされます。
例:
以下の例では、汎用集計関数のサンプルデータを使用します。
例 1: テーブル内のデータのストレージサイズをクエリします。
SELECT HOLOGRES.HG_RELATION_SIZE ('public.example_table', 'data');例 2: テーブルのバイナリログのストレージサイズをクエリします。
SELECT HOLOGRES.HG_RELATION_SIZE ('public.example_table', 'binlog');例 3: データベース内のすべてのテーブルのストレージサイズをクエリします。
SELECT table_schema || '.' || table_name AS table_full_name, pg_size_pretty(hologres.hg_relation_size(quote_ident(table_schema) || '.' || quote_ident(table_name),'data')) AS data_size, hologres.hg_relation_size(quote_ident(table_schema) || '.' || quote_ident(table_name),'data') AS order_size FROM information_schema.tables WHERE table_schema NOT IN ('pg_catalog','information_schema','hologres','hologres_statistic') ORDER BY order_size DESC;