6

RedShift で初めてクエリを実行すると、3 ~ 10 秒かかることに気付きました。同じクエリを再度実行すると、WHERE 条件の引数が異なっていても、高速に実行されます (0.2 秒)。私が話していたクエリは、3 つの整数列で、約 100 万行のテーブルで実行されます。

この実行時間の大きな違いは、RedShift がクエリを最初に実行したときにコンパイルし、コンパイルされたコードを再利用するという事実によって引き起こされたものですか?

はいの場合 - コンパイルされたクエリのこのキャッシュを常に暖かく保つ方法は?

もう 1 つの質問: queryA と queryB が与えられた場合。queryA が最初にコンパイルおよび実行されたとします。queryB の実行が queryA 用にコンパイルされたコードを使用するように、queryB は queryA とどの程度類似している必要がありますか?

4

1 に答える 1

4

最初の質問の答えはイエスです。Amazon Redshift は、クエリのコードをコンパイルしてキャッシュします。コンパイルされたコードはクラスター内のセッション間で共有されるため、異なるセッションで異なるパラメーターを使用した同じクエリでも、オーバーヘッドがないため、より高速に実行されます。

また、ベンチマークのクエリの 2 回目の実行結果を使用することをお勧めします。

この質問に対する回答と詳細は、次のリンクにあります。 http://docs.aws.amazon.com/redshift/latest/dg/c-compiled-code.html

于 2013-11-21T08:09:58.107 に答える