我有一个聚合查询,它有很多列并生成一个巨大的数据集:
SELECT column1,
column2,
...
column20,
sum(column21),
...
sum(column40)
INTO #Output
FROM #Ledger
GROUP BY column1,
...
column20
Run Code Online (Sandbox Code Playgroud)
输入表 ( #Ledger) 有 18m 行,结果表 ( #Output) 有 600k 行。查询耗时 9 分钟。有什么我可以做的让它更快吗?这是执行计划:
#Ledger表上没有索引,Sort 中的感叹号给出以下警告:
操作员在溢出级别 1 和 4 溢出线程的执行期间使用 tempdb 溢出数据,Sort 将 1541592 个页面写入 tempdb 并从 tempdb 读取 1541592 个页面,授予内存 3752160KB,已用内存 3681824KB