2017-11-27 13 views
1

私のクエリが実行にどれくらいの時間がかかるか知りたいので、私の変更がランタイムを改善するかどうかを知ることができます。ベンチマーキングのレッドシフトクエリ

クエリ全体の実行を単にタイミング合わせすることは、実行キューで待機していた(非常に可変の)時間も考慮に入れているため、不適切です。

Redshiftには、キュー待機時間と実行時間の列が別々になっているSTL_WLM_QUERYテーブルがあります。ただし、私のクエリはこのテーブルに確実に表示されません。たとえば、同じクエリを複数回実行すると、STL_WLM_QUERY内の対応する行の数は、繰り返し回数よりもはるかに少ないことがあります。クエリを実行する頻度にかかわらず、必ずしもそうではない場合があります。私はいくつかのキャッシュが行われていると思う。

Redshiftクエリの実際の実行時間を見つける良い方法はありますか、またはSTL_WLM_QUERYのどの行が正確にどのような状況で生成されるかを説明できる人はいますか?

答えて

0

マイヒント

  1. 可能であれば、それはstl_wlm_queryに行があるはず を持っている場合、あなたのクエリは、すべてで待っていないことを確認してください。待っていた場合は、 を再実行してください。
  2. クエリを1回実行してコンパイルし、もう一度ベンチマーク を実行します。時間は(あなたはまだそれを持っている場合 - あなたはおそらくない)新しいクエリ結果のキャッシュ機能を無効にし
  3. 大きくなる可能性がコンパイル (https://aws.amazon.com/about-aws/whats-new/2017/11/amazon-redshift-introduces-result-caching-for-sub-second-response-for-repeat-queries/)
関連する問題