基准红移查询



我想知道我的查询要执行多长时间,以便我可以看到更改是否改善了运行时。

简单地将整个查询的执行时间计时是不合适的,因为这也考虑了在执行队列中等待的(高度可变的)时间。

RedShift提供了STL_WLM_QUERY表,该表包含单独的列,用于队列等待时间和执行时间。但是,我的查询并不能可靠地显示在此表中。例如,如果我多次执行相同的查询,那么STL_WLM_QUERY中相应行的数量通常比重复数量小得多。有时,但并非总是只能生成一排,无论我多久运行查询的频率。我怀疑正在进行一些缓存。

有没有更好的方法来查找红移查询的实际执行时间,或者至少可以在stl_wlm_query中确切地解释哪些情况下?

我的提示

  1. 如果可能的话,请确保您的查询根本没有等待,如果它具有stl_wlm_query上应该有一行。如果它确实等待 - 然后重播它。
  2. 运行查询一次以编译它,然后第二次进行基准测试它。编译时间可能很重要
  3. 禁用新的查询结果缓存功能(如果有的话 - 你可能没有)(https://aws.amazon.com/about-aws/whats-new/2017/11/amazon-redshift-introduces-result-caching-for-sub-sub-second-respons-for-repeat-repeat-repeat-queries/)

相关内容

  • 没有找到相关文章

最新更新