SQL Server Profiler отслеживает разные результаты в разных системах для одного и того же запроса - PullRequest
0 голосов
/ 16 мая 2019

Я запускаю одно и то же приложение JAVA (spring / hibernate) в разных системах, и обе используют одну и ту же версию SQL Server.

Я использую SQL Server Profiler для отслеживания запроса, который я запускаю (точно такой же) в обеих системах.

Это моя версия SQL Server в обеих системах: enter image description here

  • Система трассировки 1: slow-system2.trc запрос принимает случайным образом от 100 до 300 мс

  • Трассировка системы 2: fast.trc запрос принимает произвольно между 10-20 мс

Здесь на медленном скриншоте кажется, что запрос «use database» занимает «331ms» по сравнению с fast.trc (0ms =: enter image description here

Что может вызвать этоРазница только в выполнении запроса «использовать базу данных»?

Я пытался на 3-й системе, работающей на SQL Express, которая слишком медленная вот трассировка

Кажется, здесь на "sql express "это связано с тем, что у меня есть два дополнительных classEvent Audit Logout , что занимает время: enter image description here

Может быть, я пропустил какой-то вариант на SQL Server?

1 Ответ

1 голос
/ 16 мая 2019

Большая длительность оператора USE указывает, что база данных может быть установлена ​​на AUTO_CLOSE ON.Издержки возникают при запуске базы данных, когда она должна быть открыта.

Параметр можно изменить с помощью:

ALTER DATABASE [YourDatabase] SET AUTO_CLOSE OFF;
...