我在不同的系统上运行相同的JAVA应用程序(春季/休眠),并且都使用相同的SQL Server版本。
我正在使用SQL Server Profiler跟踪我在两个系统上都运行(完全相同)的查询。
跟踪系统1:slow-system2.trc查询在100到300毫秒之间随机进行
跟踪系统2:fast.trc查询在10到20毫秒之间随机进行
在这里,在慢镜头中,与fast.trc(0ms =相比,“使用数据库”查询花费的时间为“ 331ms”
仅通过运行“使用数据库”查询可导致这种差异的原因是什么?
我尝试在运行sql express的第三个系统上运行here is trace
在这里,“ sql express”似乎是由于我有两个额外的 classEvent Audit注销,这需要时间:
也许我错过了SQL Server上的某些选项?
答案 0 :(得分:1)
USE
语句的持续时间长表明数据库可能已设置为AUTO_CLOSE ON
。在数据库启动期间必须将其打开时会产生开销。
可以通过以下方式更改设置:
ALTER DATABASE [YourDatabase] SET AUTO_CLOSE OFF;