bil*_*nkc 3 sql-server benchmarking
我有一个关于使用本机 SQL 聚合函数和 SSIS 中提供的聚合之间的性能差异的假设(数据库会破坏 SSIS)。我想开发一个经验过程来测试它。
对于初始测试,我唯一关心的是执行速度。以后的迭代将涵盖 CPU 和内存成本。
为了实现这一点,我建立了一个小表(100M 行)并想要捕捉时间的差异。我计划通过比较 OnPreExecute 和 OnPostExecute 的时间在 SSIS 包中完成所有操作。
第一个数据流将采用以下形式,SELECT * FROM TABLE而后者将是SELECT Aggregate(col1) FROM TABLE
对比

类似的问题,但不是我想要的
为了使评估尽可能均匀,我应该
如果决定是冲洗,就dbcc freeproccache足够了还是我需要冲洗dbcc dropcleanbuffers
我认为您确实想在两次运行之间清除页面缓存。
如果是我,我会运行类似的东西:
DBCC FREEPROCCACHE
CHECKPOINT
DBCC DROPCLEANBUFFERS
Run Code Online (Sandbox Code Playgroud)
在FREEPROCCACHE仅清除计划缓存,并没有任何与数据页。
在CHECKPOINT将刷新所有脏页到磁盘。
该DROPCLEANBUFFERS会清除数据页的缓冲池。
我也会考虑SET STATISTICS IO ON,并SET_STATISTICS TIME ON在SSMS任何运行。