【发布时间】:2018-03-29 16:26:44
【问题描述】:
我们的 Redshift 查询在第一次执行时非常很慢。随后的执行速度要快得多(例如,45 秒 -> 2 秒)。在调查了这个问题之后,查询编译似乎是罪魁祸首。这是一个已知问题,甚至在 AWS Query Planning And Execution Workflow 和 Factors Affecting Query Performance 页面上也有提及。亚马逊本身对查询缓存的工作方式非常 tight lipped (tl;博士,这是一个你不应该担心的神奇黑匣子)。
我们尝试的其中一个方法是增加我们拥有的节点数量,但是我们并不期望它能够解决任何问题,因为无论如何查询编译都是单节点操作。它没有解决任何问题,但它是一个有趣的消遣。
如前所述,这是一个已知问题,但是,在任何在线讨论的地方,唯一的收获要么是“这只是你必须使用 Redshift 才能忍受的事情”或“这是一个超级笨拙的解决方法,它只适用于时间,因为我们不知道查询缓存是如何工作的”。
我们可以做些什么来加快编译过程或以其他方式处理这个问题?到目前为止,找到的最佳解决方案是“预先运行您可能希望在给定日期按计划运行的每个查询”,这不是很好,特别是考虑到我们对查询缓存的工作原理知之甚少.
【问题讨论】:
-
冷缓存问题并非 Redshift 独有。如果你想保持温暖,你需要一个脚本来偶尔戳一下它。
-
我们也面临着与迈克相同的问题。如果有人有任何替代解决方案或任何解决方案,请告诉我们。
-
@jai 物有所值 - 我们从未找到解决此问题的方法。企业认为这是一个交易破坏者,我们改用 Snowflake
标签: amazon-web-services amazon-redshift database-performance