SQL Server事件探查器针对同一查询在不同系统上跟踪不同结果

时间:2019-05-16 10:26:04

标签: sql-server sqlprofiler

我在不同的系统上运行相同的JAVA应用程序(春季/休眠),并且都使用相同的SQL Server版本。

我正在使用SQL Server Profiler跟踪我在两个系统上都运行(完全相同)的查询。

这是我在两个系统上的SQL Server版本: enter image description here

  • 跟踪系统1:slow-system2.trc查询在100到300毫秒之间随机进行

  • 跟踪系统2:fast.trc查询在10到20毫秒之间随机进行

在这里,在慢镜头中,与fast.trc(0ms =相比,“使用数据库”查询花费的时间为“ 331ms” enter image description here

仅通过运行“使用数据库”查询可导致这种差异的原因是什么?

我尝试在运行sql express的第三个系统上运行here is trace

在这里,“ sql express”似乎是由于我有两个额外的 classEvent Audit注销,这需要时间: enter image description here

也许我错过了SQL Server上的某些选项?

1 个答案:

答案 0 :(得分:1)

USE语句的持续时间长表明数据库可能已设置为AUTO_CLOSE ON。在数据库启动期间必须将其打开时会产生开销。

可以通过以下方式更改设置:

ALTER DATABASE [YourDatabase] SET AUTO_CLOSE OFF;