QUERY_HISTORY ビュー¶
このAccount Usageビューを使用して、過去365日間(1年間)以内のさまざまなディメンション(時間範囲、セッション、ユーザー、ウェアハウスなど)によりSnowflakeクエリ履歴をクエリできます。
ビューは ACCOUNT_USAGE と READER_ACCOUNT_USAGE の両方のスキーマで使用できますが、次の違いがあります。
次の列は、リーダーアカウントビュー のみ で利用できます。
reader_account_name
reader_account_deleted_on
または、Information Schemaテーブル関数 (QUERY_HISTORYとも呼ばれる) を呼び出すこともできます。ただし、このテーブル関数では結果が過去7日間のアクティビティに制限されるのに対し、Account Usageビューでは365日間クエリできます。 QUERY_HISTORY 関数の説明 をご参照ください。
こちらもご参照ください。
QUERY_HISTORY , QUERY_HISTORY_BY_* (情報スキーマ表関数)
クエリ履歴でクエリのアクティビティをモニターする (Snowsight ダッシュボード)
列¶
以下の表の リーダーアカウントの使用状況ビューでのみ使用可能 列は、 QUERY_HISTORY 列が READER_ACCOUNT_USAGE スキーマで使用可能かどうかを示しています。
列名 | データ型 | 説明 | リーダーアカウントの使用状況ビューでのみ使用可能 |
---|---|---|---|
| VARCHAR | SQL ステートメントが実行されたリーダーアカウントの名前。 | ✔ |
| VARCHAR | SQL ステートメントの内部/システム生成識別子。 | ✔ |
| VARCHAR | SQL ステートメントのテキスト。文字数は100K文字までです。長い SQL ステートメントは切り捨てられます。 | |
| NUMBER | 使用されていたデータベースの内部/システム生成識別子。 | ✔ |
| VARCHAR | コンパイル時にクエリのコンテキストで指定されたデータベース。 | ✔ |
| NUMBER | 使用されていたスキーマの内部/システム生成識別子。 | ✔ |
| VARCHAR | コンパイル時にクエリのコンテキストで指定されたスキーマ。 | ✔ |
| VARCHAR | DML、クエリなど。クエリに失敗した場合、クエリ型は UNKNOWN になります。 | |
| NUMBER | ステートメントを実行したセッション。 | ✔ |
| VARCHAR | クエリを発行したユーザー。 | |
| VARCHAR | クエリの時点でセッションでアクティブだったロール。 | ✔ |
| NUMBER | 使用されていたウェアハウスの内部/システム生成識別子。 | ✔ |
| VARCHAR | クエリが実行されたウェアハウス(ある場合)。 | ✔ |
| VARCHAR | このステートメントが実行されたときのウェアハウスのサイズ。 | ✔ |
| VARCHAR | このステートメントが実行されたときのウェアハウスのタイプ。 | ✔ |
| NUMBER | このステートメントが実行されたクラスター(マルチクラスターウェアハウス内)。 | ✔ |
| VARCHAR | QUERY_TAG セッションパラメーターを介してこのステートメントに設定されたクエリタグ。 | ✔ |
| VARCHAR | クエリの実行ステータス。有効な値: | ✔ |
| NUMBER | クエリがエラーを返した場合のエラーコード | ✔ |
| VARCHAR | クエリがエラーを返した場合のエラーメッセージ。文字数は5K文字までです。それより長いエラーメッセージは切り捨てられます。 | ✔ |
| TIMESTAMP_LTZ | ステートメントの開始時間(ローカルタイムゾーン) | ✔ |
| TIMESTAMP_LTZ | ステートメントの終了時間(ローカルタイムゾーン) | ✔ |
| NUMBER | 経過時間(ミリ秒単位)。 | ✔ |
| NUMBER | このステートメントによってスキャンされたバイト数。 | ✔ |
| FLOAT | ローカルディスクキャッシュからスキャンされたデータの割合。値は0.0〜1.0の範囲です。真のパーセントを得るために、100を掛けます。 | |
| NUMBER | 書き込まれたバイト数(例:テーブルへのロード時)。 | |
| NUMBER | 結果オブジェクトに書き込まれるバイト数。たとえば、 | |
| NUMBER | 結果オブジェクトから読み取ったバイト数。 | |
| NUMBER | このステートメントによって生成された行の数。ROWS_PRODUCED 列は、将来のリリースで廃止される予定です。ROWS_PRODUCED 列の値は、クエリによって影響を受ける論理的な行数を反映しているとは限りません。Snowflakeは、代わりに ROWS_INSERTED、 ROWS_UPDATED、 ROWS_WRITTEN_TO RESULT、または ROWS_DELETED 列を使用することを推奨します。 | ✔ |
| NUMBER | クエリによって挿入された行の数。 | |
| NUMBER | クエリによって更新された行の数。 | |
| NUMBER | クエリによって削除された行の数。 | |
| NUMBER | データのエクスポート中にアンロードされた行の数。 | |
| NUMBER | クエリによって削除されたバイト数。 | |
| NUMBER | スキャンされたマイクロパーティションの数。 | |
| NUMBER | このクエリに含まれるすべてのテーブルのマイクロパーティション合計。 | |
| NUMBER | ローカルディスクにスピルしたデータの量。 | |
| NUMBER | リモートディスクにスピルしたデータの量。 | |
| NUMBER | ネットワーク経由で送信されたデータの量。 | |
| NUMBER | コンパイル時間(ミリ秒単位) | ✔ |
| NUMBER | 実行時間(ミリ秒単位) | ✔ |
| NUMBER | ウェアハウスの作成、再開、またはサイズ変更のために、ウェアハウスコンピューティングリソースでのプロビジョニングを待機する、ウェアハウスキューで費やされた時間(ミリ秒単位)。 | ✔ |
| NUMBER | ウェアハウス内のコンピューティングリソースの修復を待機する、ウェアハウスキュー内で費やされた時間(ミリ秒単位)。 | ✔ |
| NUMBER | ウェアハウスが現在のクエリワークロードによって過負荷になっているために、ウェアハウスキューで費やされた時間(ミリ秒)。 | ✔ |
| NUMBER | 同時 DMLによってブロックされた時間(ミリ秒)。 | ✔ |
| VARCHAR | データを別の地域やクラウドにアンロードするステートメントのターゲットクラウドプロバイダー。 | ✔ |
| VARCHAR | データを別のリージョンやクラウドにアンロードするステートメントのターゲットリージョン。 | ✔ |
| NUMBER | Snowflakeテーブルからデータをアンロードするステートメントで転送されるバイト数。 | ✔ |
| VARCHAR | 別の地域やクラウドからデータをロードするステートメントのソースクラウドプロバイダー。 | ✔ |
| VARCHAR | 別の地域やクラウドからデータをロードするステートメントのソース地域。 | ✔ |
| NUMBER | 他のアカウントからの複製操作で転送されたバイト数。ソースアカウントは、現在のアカウントと同じリージョンにある場合もあれば、異なるリージョンにある場合もあります。 | ✔ |
| NUMBER | 外部ファイルのリストに費やされた時間(ミリ秒単位)。 | |
| NUMBER | クラウドサービスのために使用されたクレジットの数。この値は クラウドサービスの調整 を考慮していないため、請求されるクレジットよりも大きくなる場合があります。実際に請求されたクレジット数を調べるには、 METERING_DAILY_HISTORY ビュー に対してクエリを実行します。 | ✔ |
| TIMESTAMP_LTZ | リーダーアカウントが削除された日時(UTC タイムゾーン)。 | ✔ |
| VARCHAR |
| |
| NUMBER | このクエリがリモートサービスを呼び出した回数の合計。重要な詳細については、使用上の注意をご参照ください。 | |
| NUMBER | このクエリが、すべてのリモートサービスに対してすべての呼び出しで送信した行の総数。 | |
| NUMBER | このクエリが、すべてのリモートサービスに対してすべての呼び出しから受信した行の総数。 | |
| NUMBER | このクエリが、すべてのリモートサービスに対してすべての呼び出しで送信したバイトの総数。 | |
| NUMBER | このクエリが、すべてのリモートサービスに対してすべての呼び出しから受信したバイトの総数。 | |
| NUMBER | このクエリ実行に対するウェアハウス内のアクティブなコンピューティングリソースのおおよその割合。 | |
| BOOLEAN | クエリがクライアントによって生成されたかどうかを示します。 | |
| NUMBER | Query Acceleration Service によってスキャンされたバイト数。 | |
| NUMBER | Query Acceleration Serviceによってスキャンされたパーティションの数。 | |
| NUMBER | クエリが受けたであろうメリット の上限 スケールファクター。 | |
| NUMBER | ステートメントを含む トランザクションの ID。ステートメントがトランザクション内で実行されない場合は0。 | |
| NUMBER | メモ化可能な関数 を呼び出すときに、キャッシュされたルックアップが完了するまでの時間(ミリ秒単位)。 | |
| VARCHAR | APPLICATION、 DATABASE_ROLE、 ROLE のいずれがクエリを実行したかを指定します。 | |
| VARCHAR | 正規化された SQL テキストに基づいて計算された ハッシュ値。 | |
| NUMBER |
| |
| VARCHAR | パラメーター化されたクエリに基づいて計算された ハッシュ値。 | |
| NUMBER |
| |
| VARCHAR | クエリで評価されたセカンダリロールに関する3つのフィールドを含む JSON 形式の文字列: セッションに応じてセカンダリロールのリストまたは | |
| NUMBER | 結果オブジェクトに書き込まれる行数。CREATE TABLE AS SELECT (CTAS)とすべての DML 操作については、この結果は | |
| NUMBER | アクション可能なエラーによるクエリ再試行の実行合計時間(ミリ秒)。詳細については、 クエリ再試行列 をご参照ください。 | |
| VARCHAR | クエリを再試行する原因となったエラー。クエリの再試行がない場合、フィールドは NULL となります。詳細については、 クエリ再試行列 をご参照ください。 | |
| NUMBER | アクション 不可能 なエラーによるクエリ再試行の実行合計時間(ミリ秒)。詳細については、 クエリ再試行列 をご参照ください。 | |
| VARCHAR | クエリを実行するユーザーのタイプ。 USERS ビュー の | |
| VARCHAR |
| |
| VARCHAR |
| |
| VARCHAR |
| |
| VARCHAR |
| |
使用上の注意¶
一般¶
ビューの遅延は最大45分です。
列
external_function_total_invocations
、external_function_total_sent_rows
、external_function_total_received_rows
、external_function_total_sent_bytes
、およびexternal_function_total_received_bytes
の値は、多くの要因の影響を受けます。要因には次のようなものがあります。SQL ステートメント内の外部関数の数。
各リモートサービスに送信されたバッチあたりの行数。
一時的なエラーによる再試行回数(例えば、応答が予定時間内に受信されなかったため)。
クライアントが生成したクエリステートメントにフィルターをかけたい場合は、 QUERY_HISTORY (Information Schemaテーブル関数)を使用してください。
キャンセルされたクエリは、
execution_status
の値ではなく、error_message
のテキスト(SQL execution canceled
) で識別されます。
クエリ再試行列¶
クエリが正常に完了するためには、1回または複数回の再試行が必要な場合があります。クエリが再試行される原因には複数が考えられます。これらの原因の中には、 アクション可能 なものがあります。つまり、ユーザーは、特定のクエリについてクエリを変更して再試行を減らす、または排除することができます。たとえば、メモリ不足のエラーによってクエリが再試行された場合、ウェアハウスの設定を変更すると問題が解決する可能性があります。
クエリの再試行には、アクション不可能なフォールトが原因のものもあります。つまり、クエリの再試行を防ぐためにユーザーができる変更はありません。たとえば、ネットワークが停止した場合には、クエリが再試行される可能性があります。この場合、クエリやそれを実行するウェアハウスに変更はなく、クエリの再試行を防ぐことができます。
QUERY_RETRY_TIME、 QUERY_RETRY_CAUSE、 FAULT_HANDLING_TIME 列は、再試行されるクエリを最適化し、クエリパフォーマンスの変動をより良く理解するのに役立ちます。
ハイブリッドテーブルのクエリ履歴¶
ハイブリッドテーブルに対するクエリで、 QUERY_HISTORY ビューに記録されるタイミングについて説明します。
ハイブリッドテーブルに対してのみ操作する短時間実行クエリでは、このビューまたは QUERY_HISTORY (Information Schemaテーブル関数)に記録は生成されません。このようなクエリをモニターするには、 AGGREGATE_QUERY_HISTORY ビューを使用します。このビューにより、高スループットの運用ワークロードの傾向と問題をより簡単にモニターすることができます。
ハイブリッドテーブルに対してのみ動作する短時間実行クエリは、 Snowsight で検査できるクエリプロファイルを提供しません。
ハイブリッドテーブルに対するクエリは、次のいずれかの条件を満たすと、 QUERY_HISTORY ビューとクエリプロファイルの両方の記録を生成します。
クエリは、ハイブリッドテーブルタイプ以外のテーブル型に対して実行される。この条件により、既存の非Unistoreワークロードの動作に変更がないことが保証されます。
クエリは、
failed_with_incident
の EXECUTION_STATUS で失敗する(QUERY_HISTORY を参照)。この条件により、特定の失敗したクエリを調査して報告し、支援を受けることができるようにします。クエリの実行時間が約500ミリ秒より長い。この条件により、遅いクエリのパフォーマンス問題を調査することができるようにします。
クエリ結果のサイズが大きすぎる。
クエリはSnowflakeトランザクションに関連付けられている。
クエリには副作用のあるシステム関数が含まれている。
クエリは、 SELECT、 INSERT、 DELETE、 UPDATE、または MERGE のステートメント型のいずれでもない。
クエリは、 SnowSQL、 Snowsight、または従来のコンソールから実行される。この条件により、長時間実行に分類されないクエリであっても、手動で完全なクエリプロファイルを生成して、特定のクエリのパフォーマンス問題を調査することができます。
クエリがこれらの基準のいずれにも当てはまらない場合でも、クエリを期間サンプリングして QUERY_HISTORY ビューの記録とクエリプロファイルを作成し、調査に役立てることができます。
PUT および GET コマンド¶
PUT 、 GET コマンドの場合、 QUERY_HISTORY の success
の EXECUTION_STATUS は、データファイルが正常にアップロードまたはダウンロードされたことを 意味 しません。代わりに、ステータスは、Snowflakeがファイル転送を続行するための承認を受けたことを示します。