前言
我对使用本地SQL聚合函数和SSIS中提供的聚合函数之间的性能差异有一个假设(数据库将崩溃SSIS)。我想开发一个经验过程来测试它。
在最初的测试中,我唯一关心的是执行速度。后续迭代将涵盖CPU和内存成本。
为了实现这一点,我建立了一个小表(1亿行),并想捕获时间差异。我计划通过比较OnPreExecute和OnPostExecute的时间来在一个SSIS包中完成所有操作。
第一个数据流的形式将采用SELECT * FROM TABLE
,而后者则是SELECT Aggregate(col1) FROM TABLE
vs
类似的问题,但不是我要找的
tl;dr;
为了尽可能地使评估变得平衡,我应该
- 在步骤之间清除缓存
- 通过预先执行查询来预热缓存
- 其他操作
如果决定清除缓存,则dbcc freeproccache
是否足够,还是需要dbcc dropcleanbuffers
?