スキーマ:

ACCOUNT_USAGE

LOCK_WAIT_HISTORY ビュー

このAccount Usageビューには、ロックを待機している トランザクション の履歴が含まれています。詳細については、 LOCK_WAIT_HISTORY ビューでブロックされたトランザクションの分析 をご参照ください。

列名

データ型

説明

OBJECT_ID

NUMBER

ロックを待機しているトランザクションのブロッキングオブジェクト(テーブルなど)の内部/システム生成識別子。

LOCK_TYPE

TEXT

ロックの型。有効な値は、 PARTITIONSTREAMTABLEROW です。 ROW はハイブリッドテーブルロックの場合に表示されます。

OBJECT_NAME

TEXT

ロックを待機しているトランザクションのオブジェクト(テーブルなど)の識別子。 ROW はハイブリッドテーブルロックの場合に表示されます。

SCHEMA_ID

NUMBER

トランザクションがロックを待機しているオブジェクトのスキーマの内部/システム生成識別子。 0 はハイブリッドテーブルの場合に表示されます。

SCHEMA_NAME

TEXT

トランザクションがロックを待機しているオブジェクトのスキーマの識別子。NULL は ROW ロックの場合に表示されます。

DATABASE_ID

NUMBER

トランザクションがロックを待機しているオブジェクトのデータベースの内部/システム生成識別子。

DATABASE_NAME

TEXT

トランザクションがロックを待機しているオブジェクトのデータベースの識別子。

QUERY_ID

TEXT

ロックを待機している SQL ステートメントの内部/システム生成識別子。

TRANSACTION_ID

NUMBER

ロックを待機しているステートメントを含む内部/システム生成された トランザクションの識別子。トランザクション内のステートメントに関する追加の詳細については、 QUERY_HISTORY ビュー と結合できます。

REQUESTED_AT

TIMESTAMP_LTZ

ロックを待機しているトランザクションによってロックがリクエストされたときのタイムスタンプ。

ACQUIRED_AT

TIMESTAMP_LTZ

ロックを保持しているトランザクションによってロックが取得されたときのタイムスタンプ。

BLOCKER_QUERIES

VARIANT

オブジェクトの JSON 配列。各オブジェクトは、以下のプロパティを持つブロッカークエリです: .

  • is_snowflake: クエリがSnowflakeによって実行されるバックグラウンドプロセスである場合(マテリアライズドビューの自動メンテナンスなど)は TRUE。 .

  • query_id: ステートメントをブロックしたブロッカートランザクションの現在のステートメントのクエリ ID。 is_snowflake がTrueの場合は空になります。 .

  • transaction_id: ブロッカートランザクションの ID。 is_snowflake がTrueの場合は空になります。 .

この配列には最大20個のオブジェクトが存在する可能性があります。

使用上の注意

  • blocker_queries 配列で返される最初のブロッカークエリ ID は、ロックを待機しているトランザクションが待機を開始したときに、ロックを保持しているトランザクションで実行されていたクエリの ID です。ブロッカートランザクション内にあるそのクエリの前のクエリもロックを取得した可能性があるため、調査する必要があることに注意してください。

  • 出力の各行は、ロックを待機しているトランザクションを表します。同じロックで待機している他の後続トランザクションが存在する可能性があることに注意してください。

過去24時間以内にロックをリクエストし、ブロックされたすべてのトランザクションを検索します。

SELECT query_id, object_name, transaction_id, blocker_queries
  FROM SNOWFLAKE.ACCOUNT_USAGE.LOCK_WAIT_HISTORY
  WHERE requested_at >= DATEADD('hours', -24, CURRENT_TIMESTAMP());
Copy

その他の例については、 LOCK_WAIT_HISTORY ビューでブロックされたトランザクションの分析 をご参照ください。