カテゴリ:

Information Schemaテーブル関数

QUERY_HISTORY , QUERY_HISTORY_BY_*

QUERY_HISTORY ファミリーのテーブル関数を使用して、さまざまなディメンションに沿ってSnowflakeクエリ履歴をクエリできます。

  • QUERY_HISTORY は、指定された時間範囲内のクエリを返します。

  • QUERY_HISTORY_BY_SESSION は、指定されたセッションと時間範囲内のクエリを返します。

  • QUERY_HISTORY_BY_USER は、指定された時間範囲内で指定されたユーザーによって送信されたクエリを返します。

  • QUERY_HISTORY_BY_WAREHOUSE は、指定された時間範囲内で指定されたウェアハウスによって実行されたクエリを返します。

各関数は、指定されたディメンションに沿ったクエリ用に最適化されています。SQL 述語を使用して、結果をさらにフィルタリングできます。

注釈

これらの関数は、過去7日以内のクエリアクティビティを返します。

こちらもご参照ください:

構文

QUERY_HISTORY(
      [ END_TIME_RANGE_START => <constant_expr> ]
      [, END_TIME_RANGE_END => <constant_expr> ]
      [, RESULT_LIMIT => <num> ] )

QUERY_HISTORY_BY_SESSION(
      [ SESSION_ID => <constant_expr> ]
      [, END_TIME_RANGE_START => <constant_expr> ]
      [, END_TIME_RANGE_END => <constant_expr> ]
      [, RESULT_LIMIT => <num> ] )

QUERY_HISTORY_BY_USER(
      [ USER_NAME => '<string>' ]
      [, END_TIME_RANGE_START => <constant_expr> ]
      [, END_TIME_RANGE_END => <constant_expr> ]
      [, RESULT_LIMIT => <num> ] )

QUERY_HISTORY_BY_WAREHOUSE(
      [ WAREHOUSE_NAME => '<string>' ]
      [, END_TIME_RANGE_START => <constant_expr> ]
      [, END_TIME_RANGE_END => <constant_expr> ]
      [, RESULT_LIMIT => <num> ] )
Copy

引数

すべての引数はオプションです。

END_TIME_RANGE_START => constant_expr. END_TIME_RANGE_END => constant_expr

クエリの実行が完了した過去7日以内の時間範囲(TIMESTAMP_LTZ 形式):

  • END_TIME_RANGE_END が指定されていない場合、関数はまだ実行中のクエリを含むすべてのクエリを返します。

  • END_TIME_RANGE_ENDCURRENT_TIMESTAMP の場合、関数は完了したクエリのみを返します。

時間範囲が過去7日以内に収まらない場合、エラーが返されます。

注釈

開始時刻または終了時刻が指定されていない場合、指定された制限までの最新のクエリが返されます。

SESSION_ID => constant_expr

QUERY_HISTORY_BY_SESSION にのみ適用

セッションの数値識別子または CURRENT_SESSION です。指定されたセッションからのクエリのみが返されます。

デフォルト: CURRENT_SESSION

USER_NAME => 'string'

QUERY_HISTORY_BY_USER にのみ適用

ユーザーログイン名または CURRENT_USER を指定する文字列です。指定したユーザーが実行したクエリのみが返されます。ログイン名は一重引用符で囲む必要があります。また、ログイン名にスペース、大文字と小文字の混在、または特殊文字がある場合、名前は二重引用符を一重引用符内で囲む必要があります(例: '"User 1"''user1')。

デフォルト: CURRENT_USER

WAREHOUSE_NAME => 'string'

QUERY_HISTORY_BY_WAREHOUSE にのみ適用

ウェアハウス名または CURRENT_WAREHOUSE を指定する文字列です。そのウェアハウスによって実行されたクエリのみが返されます。ウェアハウス名は一重引用符で囲む必要があります。また、ウェアハウス名にスペース、大文字と小文字の混在、または特殊文字がある場合、名前は二重引用符を一重引用符内で囲む必要があります(例: '"My Warehouse"''mywarehouse')。

デフォルト: CURRENT_WAREHOUSE

RESULT_LIMIT => num

関数によって返される行の最大数を指定する数値です。

一致する行の数がこの制限よりも大きい場合、指定された制限まで、最新の終了時刻(またはまだ実行中のもの)のクエリが返されます。

範囲: 110000

デフォルト: 100

使用上の注意

  • 現在のユーザーが実行したクエリを返します。また、実行ロールまたは階層内の上位ロールが、クエリが実行されたウェアハウスに対する MONITOR または OPERATE 権限を持っている場合に、任意のユーザーによって実行されたクエリを返します。詳細については、 仮想ウェアハウス権限 をご参照ください。

  • Information Schemaテーブル関数を呼び出す場合、セッションには使用中の INFORMATION_SCHEMA スキーマ または 完全修飾された関数名が必要です。詳細については、 Snowflake Information Schema をご参照ください。

  • 列 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_ID

TEXT

ステートメントの一意のID。

QUERY_TEXT

TEXT

SQL ステートメントのテキスト。

DATABASE_NAME

TEXT

コンパイル時にクエリのコンテキストで指定されたデータベース。

SCHEMA_NAME

TEXT

コンパイル時にクエリのコンテキストで指定されたスキーマ。

QUERY_TYPE

TEXT

DML、クエリなど。クエリが現在実行中の場合、またはクエリが失敗した場合、クエリタイプは UNKNOWNになります。

SESSION_ID

NUMBER

ステートメントを実行したセッション。

USER_NAME

TEXT

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

ROLE_NAME

TEXT

クエリの時点でセッションでアクティブだったロール。

WAREHOUSE_NAME

TEXT

クエリが実行されたウェアハウス(ある場合)。

WAREHOUSE_SIZE

TEXT

このステートメントが実行されたときのウェアハウスのサイズ。

WAREHOUSE_TYPE

TEXT

このステートメントが実行されたときのウェアハウスのタイプ。

CLUSTER_NUMBER

NUMBER

このステートメントが実行されたクラスター(マルチクラスターウェアハウス内)。

QUERY_TAG

TEXT

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

EXECUTION_STATUS

TEXT

クエリの実行ステータス:resuming_warehouse、running、queued、blocked、success、failed_with_error、またはfailed_with_incident。

ERROR_CODE

NUMBER

クエリがエラーを返した場合のエラーコード

ERROR_MESSAGE

TEXT

クエリがエラーを返した場合のエラーメッセージ

START_TIME

TIMESTAMP_LTZ

ステートメントの開始時間

END_TIME

TIMESTAMP_LTZ

ステートメントの終了時間です。クエリがまだ実行中の場合、 END_TIME はローカルタイムゾーンに合わせて調整された UNIX エポックタイムスタンプ(「1970-01-01 00:00:00」)です。例えば、太平洋標準時の場合、これは「1969-12-31 16:00:00.000-0800」になります。

TOTAL_ELAPSED_TIME

NUMBER

経過時間(ミリ秒)

BYTES_SCANNED

NUMBER

このステートメントによってスキャンされたバイト数。

ROWS_PRODUCED

NUMBER

このステートメントによって生成された行の数。

COMPILATION_TIME

NUMBER

コンパイル時間(ミリ秒)

EXECUTION_TIME

NUMBER

実行時間(ミリ秒)

QUEUED_PROVISIONING_TIME

NUMBER

ウェアハウスの作成、再開、またはサイズ変更のために、ウェアハウスコンピューティングリソースでのプロビジョニングを待機する、ウェアハウスキューで費やされた時間(ミリ秒単位)。

QUEUED_REPAIR_TIME

NUMBER

ウェアハウス内のコンピューティングリソースの修復を待機する、ウェアハウスキュー内で費やされた時間(ミリ秒単位)。

QUEUED_OVERLOAD_TIME

NUMBER

ウェアハウスが現在のクエリワークロードによって過負荷になっているため、ウェアハウスキューで費やされた時間(ミリ秒)。

TRANSACTION_BLOCKED_TIME

NUMBER

同時 DMLによってブロックされた時間(ミリ秒)。

OUTBOUND_DATA_TRANSFER_CLOUD

TEXT

データを別の地域やクラウドにアンロードするステートメントのターゲットクラウドプロバイダー。

OUTBOUND_DATA_TRANSFER_REGION

TEXT

データを別の地域やクラウドにアンロードするステートメントのターゲット地域。

OUTBOUND_DATA_TRANSFER_BYTES

NUMBER

別の地域やクラウドにデータをアンロードするステートメントで転送されたバイト数。

INBOUND_DATA_TRANSFER_CLOUD

TEXT

別の地域やクラウドからデータをロードするステートメントのソースクラウドプロバイダー。

INBOUND_DATA_TRANSFER_REGION

TEXT

別の地域やクラウドからデータをロードするステートメントのソース地域。

INBOUND_DATA_TRANSFER_BYTES

NUMBER

別の地域やクラウドからデータをロードするステートメントで転送されたバイト数。

LIST_EXTERNAL_FILE_TIME

NUMBER

外部ファイルのリストに費やされた時間(ミリ秒)。

CREDITS_USED_CLOUD_SERVICES

NUMBER

クラウドサービスのために使用されたクレジットの数。

RELEASE_VERSION

TEXT

major_release.minor_release.patch_release の形式のリリースバージョン。

EXTERNAL_FUNCTION_TOTAL_INVOCATIONS

NUMBER

このクエリがリモートサービスを呼び出した回数の合計。重要な詳細については、使用上の注意をご参照ください。

EXTERNAL_FUNCTION_TOTAL_SENT_ROWS

NUMBER

このクエリが、すべてのリモートサービスに対してすべての呼び出しで送信した行の総数。

EXTERNAL_FUNCTION_TOTAL_RECEIVED_ROWS

NUMBER

このクエリが、すべてのリモートサービスに対してすべての呼び出しから受信した行の総数。

EXTERNAL_FUNCTION_TOTAL_SENT_BYTES

NUMBER

このクエリが、すべてのリモートサービスに対してすべての呼び出しで送信したバイトの総数。

EXTERNAL_FUNCTION_TOTAL_RECEIVED_BYTES

NUMBER

このクエリが、すべてのリモートサービスに対してすべての呼び出しから受信したバイトの総数。

IS_CLIENT_GENERATED_STATEMENT

BOOLEAN

クエリがクライアントによって生成されたかどうかを示します。

QUERY_HASH

TEXT

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

QUERY_HASH_VERSION

NUMBER

QUERY_HASH を計算するために使用される ロジックのバージョン1

QUERY_PARAMETERIZED_HASH

TEXT

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

QUERY_PARAMETERIZED_HASH_VERSION

NUMBER

QUERY_PARAMETERIZED_HASH を計算するために使用される ロジックのバージョン1

1(1,2,3,4)

この列は、 2023_06動作変更バンドルが有効になっている 場合にのみ表示されます。この列は、 クエリハッシュ 機能の一部です。

QUERY_TYPE 列の潜在的な値は次のとおりです。

  • CREATE_USER

  • CREATE_ROLE

  • CREATE_NETWORK_POLICY

  • ALTER_ROLE

  • ALTER_NETWORK_POLICY

  • ALTER_ACCOUNT

  • DROP_SEQUENCE

  • DROP_USER

  • DROP_ROLE

  • DROP_NETWORK_POLICY

  • RENAME_NETWORK_POLICY

  • REVOKE

現在のセッションで実行された最後の100クエリまで取得します。

select *
from table(information_schema.query_history_by_session())
order by start_time;
Copy

現在のユーザー(または現在のユーザーが MONITOR 権限を持つウェアハウスの任意のユーザー)によって実行された最後の100クエリまで取得します。

select *
from table(information_schema.query_history())
order by start_time;
Copy

過去1時間に現在のユーザー(または、現在のユーザーが MONITOR 権限を持つウェアハウスの任意のユーザー)によって実行された最後の100クエリまで取得します。

select *
from table(information_schema.query_history(dateadd('hours',-1,current_timestamp()),current_timestamp()))
order by start_time;
Copy

過去7日以内の指定された30分ブロック内に、現在のユーザー(または現在のユーザーが MONITOR 権限を持つ任意のウェアハウスのユーザー)によって実行されたすべてのクエリを取得します。

select *
  from table(information_schema.query_history(
    END_TIME_RANGE_START=>to_timestamp_ltz('2017-12-4 12:00:00.000 -0700'),
    END_TIME_RANGE_END=>to_timestamp_ltz('2017-12-4 12:30:00.000 -0700')));
Copy