我一直在从事一个项目,该项目旨在使用 SSIS 包自动对我们服务器上的一些存储过程进行性能测试。以前它是使用 SQL Server Profiler 手动完成的。我们曾经存储跟踪表,然后将最新数据(Duration、CPU、Reads)与旧数据进行比较。作为自动化的一部分,我们使用扩展事件将事件数据存储到文件中,然后将数据读取到数据库表中。
我面临的问题是,每当我手动运行存储过程时,我得到的数据与我在使用自动化工具运行这些存储过程时得到的数据不一致。我很确定我们已经在工具中正确实现了扩展事件。
以下是我得到的结果(在手动测试以及使用工具之前清理缓存)
一些存储过程有 40-50% 的 CPU 变化和 >100% 的持续时间变化。
有人可以提出相同的可能原因吗?除了使用 XEvents 自动执行任务外,我找不到其他方法。
EDIT1:数据快照