メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012年12月1日)

STL_ALERT_EVENT_LOG

パフォーマンスの問題を示している可能性のある条件がクエリオプティマイザによって特定された場合にアラートを記録します。クエリパフォーマンスを向上させる機会を特定するには、STL_ALERT_EVENT_LOG テーブルを使用します。

複数のセグメントから構成された 1 つのクエリ。各セグメントは 1 つ以上のステップから構成されます。詳細については、「クエリ処理」を参照してください。

STL_ALERT_EVENT_LOG はすべてのユーザーに表示されます。スーパーユーザーはすべての行を表示できます。通常のユーザーは自分のデータのみを表示できます。詳細については、「システムテーブルとビューのデータの可視性」を参照してください。

テーブルの列

列名 データ型 説明
userid integer エントリを生成したユーザーの ID。
query integer クエリ ID。クエリ列は、他の各種システムテーブルおよびビューを結合するために使用できます。
slice integer クエリが実行されているスライスを識別する番号。
segment integer クエリセグメントを識別する番号。
step integer 実行されたクエリステップ。
pid integer ステートメントとスライスに関連付けられるプロセス ID。複数のスライスに対して実行されている場合、同じクエリが複数の PID を持つことがあります。
xid bigint ステートメントに関連付けられるトランザクション ID。
event character(1024) アラートイベントの説明。
solution character(1024) 推奨される解決策。
event_time timestamp UTC で表されたクエリの実行開始時刻。秒の小数部の精度(6 桁)を使用します。例: 2009-06-12 11:29:19.131358.

使用に関する注意事項

STL_ALERT_EVENT_LOG を使用してクエリの潜在的な問題を特定し、「クエリパフォーマンスのチューニング」の説明に従ってデータベース設計を最適化して、クエリを再作成できます。STL_ALERT_EVENT_LOG は以下のアラートを記録します。

  • 見つからない統計

    統計が見つかりません。データロードまたは大規模な更新の後で ANALYZE を実行し、COPY 操作で STATUPDATE を使用します。詳細については、「クエリの設計のベストプラクティス」を参照してください。

  • Nested Loop

    通常、ネステッドループはデカルト積です。クエリを評価して、関与しているすべてのテーブルが効率的に結合されていることを確認します。

  • 非常に選択的なフィルタ

    スキャンされた行に対する返された行の比率が 0.05 未満です。スキャンされた行は rows_pre_user_filter の値であり、返された行は STL_SCAN システムテーブルの行の値です。結果セットを決定するために、クエリが著しく大量の行数をスキャンしていることを示します。この問題は、ソートキーが見つからない場合や正しくない場合に起こります。詳細については、「ソートキーの選択」を参照してください。

  • 過剰な数の非実体行

    削除済みだがバキューム未処理としてマークされた比較的多数の行、または挿入済みだがコミットされていない比較的多数の行がスキャンによってスキップされました。詳細については、「テーブルのバキューム処理」を参照してください。

  • サイズの大きな分散

    ハッシュ結合または集計で 100 万を超える行が再分散されました。詳細については、「データ分散スタイルの選択」を参照してください。

  • サイズの大きなブロードキャスト

    ハッシュ結合で 100 万を超える行がブロードキャストされました。詳細については、「データ分散スタイルの選択」を参照してください。

  • 直列実行

    内部テーブル全体が単一ノードに再分散されたために直列実行を強制する、DS_DIST_ALL_INNER 再分散スタイルがクエリプランで指定されました。詳細については、「データ分散スタイルの選択」を参照してください。

サンプルクエリ

次のクエリは、4 つのクエリに関するアラートイベントを表示します。

Copy
SELECT query, substring(event,0,25) as event, substring(solution,0,25) as solution, trim(event_time) as event_time from stl_alert_event_log order by query; query | event | solution | event_time -------+-------------------------------+------------------------------+--------------------- 6567 | Missing query planner statist | Run the ANALYZE command | 2014-01-03 18:20:58 7450 | Scanned a large number of del | Run the VACUUM command to rec| 2014-01-03 21:19:31 8406 | Nested Loop Join in the query | Review the join predicates to| 2014-01-04 00:34:22 29512 | Very selective query filter:r | Review the choice of sort key| 2014-01-06 22:00:00 (4 rows)