5
我注意到,我第一次在RedShift上運行查詢時,需要3-10秒。當我再次運行相同的查詢時,即使在WHERE條件中使用不同的參數,它運行速度也很快(0.2秒)。 查詢我正在談論的是在〜3行整數列上的3個整數列上運行。在RedShift中第一次執行查詢時的運行時間很長
由於RedShift第一次編譯查詢,然後重新使用編譯後的代碼,導致執行時間的巨大差異?
如果是 - 如何始終保持編譯查詢的緩存溫暖?
還有一個問題: 給定queryA和queryB。我們假設queryA首先被編譯和執行。 queryB與queryA的相似程度如何,以便執行queryB將使用爲queryA編譯的代碼?
這是絕對正確的。我更深入地挖掘搞清楚究竟是什麼原因導致的代碼重新編譯:https://medium.com/@pingram/redshift-code-compilation-977143576e89 – Phil
你怎麼能告訴我們,如果第二次,結果不來了從緩存結果?你真的可以指望第二次嘗試同一查詢進行性能測試的執行時間嗎?另一個鏈接http://docs.aws.amazon.com/redshift/latest/dg/c-query-performance.html – Faiz
可以測試查詢的影響孤立編譯通過一個空表嘗試不同的查詢,消除數據緩存作爲一個變量。我發現,查詢編譯延遲尺度與查詢的複雜性:特別是,許多表和聯接參與。請參閱:http://wrschneider.github.io/2017/06/02/redshift-compile-latency.html – wrschneider