Чому для sp_reset_connection
системної збереженої процедури потрібно тривати більше декількох мілісекунд, як це переглядають через SQL Server Profiler?
Я взяв простий слід із виробничої системи, використовуючи SQL Server Profiler, а потім використав SqlNexus для його аналізу. SqlNexus вказує, що sp_reset_connection має найвищу кумулятивну тривалість - 33% від загального сліду. Спостережувана тривалість коливається від 0-7 секунд (12 до 6 833,270 мікросекунд), але в середньому становить 0,956 с.
Я розумію, що sp_reset_connection викликається, коли об'єднане з'єднання повторно використовується. Я бачив припущення, що це може статися через сторонні сліди , але це, мабуть, не так.
Я прочитав, що робить сервер, коли викликається паросток, але я не вважаю, що жодне з них було б проблематичним у цьому випадку - код не залишає відкритих транзакцій або величезних тимчасових таблиць, які потрібно буде очистити.
Я також переглянув /server/199974/sp-reset-connection-taking-a-long-time-to-run, але це не було корисно.
EDIT (2013-12-23): У всіх випадках читання і записування дорівнюють 0, а процесор майже завжди дорівнює 0 (лише два екземпляри ненульового процесора, обидва в 16 мс).
RPC:Starting
, RPC:Completed
і зачекаю типи короткий період, а потім перегляньте дані, щоб побачити, з якими типами очікування стикаються павуки за цей час.