すべてのプロダクト
Search
ドキュメントセンター

Hologres:テーブルストレージ関数

最終更新日:Mar 22, 2025

このトピックでは、内部テーブルのストレージサイズをクエリするために使用できる Hologres テーブルストレージ関数について説明します。

関数

説明

PG_DATABASE_SIZE

現在のデータベースのストレージサイズをクエリします。

PG_RELATION_SIZE

テーブルのストレージサイズをクエリします。

HOLOGRES.HG_RELATION_SIZE

データやバイナリログのストレージサイズなど、テーブルのストレージの詳細をクエリします。

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;