【发布时间】:2021-09-19 18:25:31
【问题描述】:
我们如何在雪花中更快地进行如下查询。
SELECT ColumnA, ColumnB, ColumnC
FROM TableA
WHERE ColumnA = 'ABC123'
SELECT ColumnA, ColumnB, ColumnC
FROM TableA
WHERE ColumnA IN ('ABC123', 'ABC456', 'ABCnnn')
表 A 有 5 亿行、200 列、30GB 压缩大小,A 列有 3 亿个唯一值。
ColumnA 不能用作集群键,因为该表已被其他必要的列集群。此外,表格的搜索优化已经开启。
在 IN 子句中具有 15K 值的典型查询使用 XL 仓库在 30 秒内返回结果,而在这些列上编制索引的旧数据存储在 1 秒内返回结果。
【问题讨论】:
-
IN 子句中的 15k 值实际上可能会为您创建较长的编译时间,而不是执行时间。编译与执行需要多少时间?
标签: sql query-optimization snowflake-cloud-data-platform