Abr*_*ith 6 performance amazon-redshift
我的场景似乎非常简单,但由于某种原因,我的查询总是进行 seq 扫描,并且不使用为表定义的排序键。
SELECT *
FROM table1
WHERE md_event_time between '2017-07-23 00:00:00' AND '2017-07-27 23:59:00'
Run Code Online (Sandbox Code Playgroud)
where 子句中的字段显示为表 info 中的排序键。解释:
XN Seq Scan on table1 (cost=0.00..0.00 rows=1 width=20)
Filter: ((md_event_time <= '2017-07-27 23:59:00'::timestamp without time zone) AND
(md_event_time >= '2017-07-23 00:00:00'::timestamp without time zone))
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏。
你在计划中看不到排序键的效果EXPLAIN。运行查询,然后在视图中查找它,特别是在显示表扫描的行上SVL_QUERY_SUMMARY查找is_rrscan等于的列。t这表明 Redshift 能够通过使用排序键范围来减少扫描。
rows_pre_filter如果和计数之间存在很大差异rows,请确保表已被VACUUM编辑(以删除已删除的行),然后考虑仅通过将其设置为ENCODE raw(排序键上的压缩过多会迫使数据库实现太多行)。
http://docs.aws.amazon.com/redshift/latest/dg/r_SVL_QUERY_SUMMARY.html
| 归档时间: |
|
| 查看次数: |
6113 次 |
| 最近记录: |