スキーマ:

ACCOUNT_USAGE

QUERY_ATTRIBUTION_HISTORY ビュー

このAccount Usageビューを使用して、過去365日(1年間)にアカウントのウェアハウスで実行された特定のクエリのコンピューティングコストを判断することができます。

詳細については、 SQL でのタグ別のコスト表示 をご参照ください。

列名

データ型

説明

QUERY_ID

VARCHAR

SQL ステートメントの内部/システム生成識別子。

PARENT_QUERY_ID

VARCHAR

親のクエリのクエリ ID、 親がない場合は NULL になります。

ROOT_QUERY_ID

VARCHAR

チェーン内で一番上のクエリのクエリ ID、 クエリが親を持たない場合は NULL になります。

WAREHOUSE_ID

NUMBER

クエリが実行されたウェアハウスの内部/システム生成識別子。

WAREHOUSE_NAME

VARCHAR

クエリが実行されたウェアハウスの名前。

QUERY_HASH

VARCHAR

正規化された SQL テキストに基づいて計算された ハッシュ値

QUERY_PARAMETERIZED_HASH

VARCHAR

パラメーター化されたクエリに基づいて計算された ハッシュ値

QUERY_TAG

VARCHAR

QUERY_TAG セッションパラメーターを介してこのステートメントに設定されたクエリタグ。

USER_NAME

VARCHAR

クエリを発行したユーザー。

START_TIME

TIMESTAMP_LTZ

クエリ実行開始時刻(ローカルタイムゾーン)。

END_TIME

TIMESTAMP_LTZ

クエリ実行の終了時刻(ローカルタイムゾーン)。

CREDITS_ATTRIBUTED_COMPUTE

FLOAT

このクエリのクレジットの数。クエリ実行時のクレジット使用量のみを含み、ウェアハウスのアイドル時間は含みません。

CREDITS_USED_QUERY_ACCELERATION

FLOAT

Number of credits consumed by the Query Acceleration Service to accelerate the query. NULL if the query is not accelerated. . . The total cost for an accelerated query is the sum of this column and the CREDITS_ATTRIBUTED_COMPUTE column.

使用上の注意

  • この表示の遅延時間は最大8時間です。

  • このビューは、 USAGE_VIEWER または GOVERNANCE_VIEWER データベース・ロール を付与されたロールの結果を表示します。

  • credits_attributed_compute 列の値には、マルチクラスタウェアハウスのサイズ変更および自動スケーリングを含む、クエリ実行時のウェアハウスのクレジット使用状況が含まれます。このコストは、リソース消費量の加重平均に基づいて算出されます。

    この値には、ウェアハウスのアイドル時間に対するクレジット使用状況は含まれません。アイドル時間とは、ウェアハウス内でクエリが実行されていない時間のことで、ウェアハウスレベルで測定することができます。

    この値には、クエリ実行の結果として発生するその他のクレジット使用状況は含まれません。例えば、以下のものはクエリコストに含まれません:

    • データ転送コスト

    • ストレージコスト

    • クラウドサービスコスト

    • サーバーレス機能のコスト

    • AI サービスによって処理されるトークンのコスト

  • 同時に実行されるクエリの場合、ウェアハウスのコストは、与えられた時間間隔におけるリソース消費の加重平均に基づいて、個々のクエリに帰属します。

  • 実行時間の短いクエリ(~100ms以下)は、現在、クエリごとのコスト属性には短すぎるため、ビューには含まれません。

  • すべての列のデータは、2024年8月中旬から入手可能になります。この日付より前のデータもビューに表示できますが、完全ではない場合があります。

現在のユーザーのクエリコスト

現在のユーザーが当月に実行したクエリのコストを調べるには、以下のステートメントを実行します:

SELECT user_name, SUM(credits_attributed_compute) AS credits
  FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ATTRIBUTION_HISTORY
  WHERE user_name = CURRENT_USER()
    AND start_time >= DATE_TRUNC('MONTH', CURRENT_DATE)
    AND start_time < CURRENT_DATE
  GROUP BY user_name;
Copy

ウェアハウスのコストをユーザーに帰属させる例については、 異なる部門のユーザーが共有するリソース を参照してください。

ストアドプロシージャのクエリコスト

複数の階層クエリを発行するストアドプロシージャの場合、プロシージャのルートクエリ ID を使用して、プロシージャの帰属クエリコストを計算できます。

  1. ストアドプロシージャのルートクエリ ID を見つけるには、 ACCESS_HISTORY ビュー を使用します。例えば、ストアドプロシージャのルートクエリ ID を見つけるには、 query_id を設定し、以下のステートメントを実行します:

    SET query_id = '<query_id>';
    
    SELECT query_id,
           parent_query_id,
           root_query_id,
           direct_objects_accessed
      FROM SNOWFLAKE.ACCOUNT_USAGE.ACCESS_HISTORY
      WHERE query_id = $query_id;
    
    Copy

    詳細については、 Ancestor queries with stored procedures をご参照ください。

  2. プロシージャ全体のクエリコストを合計するには、 < root_query_id > を置き換え、以下のステートメントを実行します:

    SET query_id = '<root_query_id>';
    
    SELECT SUM(credits_attributed_compute) AS total_attributed_credits
      FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ATTRIBUTION_HISTORY
      WHERE (root_query_id = $query_id OR query_id = $query_id);
    
    Copy

追加の例

その他の例については、 異なる部門のユーザーが共有するリソース をご参照ください。