amazon-redshift - 为什么在 Redshift 上使用窗口函数时查询计划器成本会出现跳跃?
问题描述
我在 Amazon Redshift 中遇到了查询计划程序的一个奇怪行为:在某些情况下,例如使用窗口函数时,成本会增加 10000。通常是在“网络”步骤之后。
我的问题是,有时我确实需要使用窗口函数,并且比较备选方案之间的成本变得不可能,因为查询的运行时间之间的比率与其成本的比率不成比例(如果你看一下它是相对成比例的没有乘以 10000 的窗口函数的成本)。
这是一个简化的示例,比较这两个查询:
-- Query #1: running time 2m 48s, cost 1000017902760.42
explain
select
first_value(timestamp) over (order by timestamp rows
between unbounded preceding and unbounded following)
from table_with_timestamps as l
limit 1
;
-- Query #2: running time 10 sec, cost 1549471.30
explain
select
min(timestamp)
from table_with_timestamps
有人可以解释更多关于优化窗口功能的信息,以及我不清楚的这个“网络”步骤吗?
谢谢。
解决方案
推荐阅读
- encryption - 传输中和静态的 Azure 媒体服务加密
- c# - 如何在 Unity 中更改父对象的位置
- javascript - goBack 导航调用后未调用 componentDidMount
- javascript - 在 Angular 中渲染视图后如何渲染 javascript 文件
- python - python paramiko错误“AttributeError:'NoneType'对象没有属性'open_session'”
- vue.js - 赛普拉斯:无法从窗口对象访问应用程序
- sql - 触发器 - 实施问题
- android - 包含图像按钮的活动需要太多时间来加载
- javascript - 通过在 datepicker 中选择日期来选择图片
- java - 如何进行活动以显示从服务获取的数据?