- スキーマ:
QUERY_ATTRIBUTION_HISTORY ビュー¶
このAccount Usageビューを使用して、過去365日(1年間)にアカウントのウェアハウスで実行された特定のクエリのコンピューティングコストを判断することができます。
詳細については、 クエリのコスト帰属 をご参照ください。
列¶
列名 |
データ型 |
説明 |
---|---|---|
|
VARCHAR |
SQL ステートメントの内部/システム生成識別子。 |
|
VARCHAR |
親のクエリのクエリ ID、 親がない場合は NULL になります。 |
|
VARCHAR |
チェーン内で一番上のクエリのクエリ ID、 クエリが親を持たない場合は NULL になります。 |
|
NUMBER |
クエリが実行されたウェアハウスの内部/システム生成識別子。 |
|
VARCHAR |
クエリが実行されたウェアハウスの名前。 |
|
VARCHAR |
正規化された SQL テキストに基づいて計算された ハッシュ値。 |
|
VARCHAR |
パラメーター化されたクエリに基づいて計算された ハッシュ値。 |
|
VARCHAR |
QUERY_TAG セッションパラメーターを介してこのステートメントに設定されたクエリタグ。 |
|
VARCHAR |
クエリを発行したユーザー。 |
|
TIMESTAMP_LTZ |
クエリ実行開始時刻(ローカルタイムゾーン)。 |
|
TIMESTAMP_LTZ |
クエリ実行の終了時刻(ローカルタイムゾーン)。 |
|
NUMBER |
このクエリのクレジットの数。クエリ実行時のクレジット使用量のみを含み、ウェアハウスのアイドル時間は含みません。 |
|
NUMBER |
Query Acceleration Service がクエリを高速化するために消費したクレジットの数。クエリが高速化されていない場合は NULL です。 . . 高速化されたクエリの合計コストは、この列と |
使用上の注意¶
このビューの待機時間は最大6時間です。
このビューは、 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;
ウェアハウスのコストを現在のユーザーに帰属させるには、 ウェアハウスコストのユーザーベースの帰属 をご参照ください。
ストアドプロシージャのクエリコスト¶
複数の階層クエリを発行するストアドプロシージャの場合、プロシージャのルートクエリ ID を使用して、プロシージャの帰属クエリコストを計算できます。
ストアドプロシージャのルートクエリ 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;
詳細については、 例: ストアドプロシージャによる祖先クエリ をご参照ください。
プロシージャ全体のクエリコストを合計するには、
< 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);
追加の例¶
その他の例については、 タグ、ユーザー、クエリ別のコスト帰属 をご参照ください。