У нас есть хранимая процедура, которая вызывается около 300 000 раз в день 15 пользователями в течение дня. Я пролил каждую строчку, и она настолько эффективна, насколько я могу ее получить.
Доступ к хранимой процедуре осуществляется через страницу ASP.NET версии 4.0 из устаревшего приложения VB6 на базовых версиях Winterms.
Когда я смотрю на файл трассировки SQL, я вижу следующее:
- exec sp_reset_connection (Использование пула соединений)
- Аудит Вход
- Выполнение хранимой процедуры
- Аудит Выход из системы
Я вижу на шаге 4, чтение и запись очень высоки, что имеет смысл, поскольку это накопление соединения, повторно используемого в пуле.
Что меня беспокоит, так это то, сколько времени это занимает, иногда 50 мс, а иногда 400 мс, это совершенно случайно. Из документов, которые я прочитал, «Выход из аудита» - это полная продолжительность всех трех шагов. Но шаги 1-3 были очень быстрыми, как 0-5 мс. Почему продолжительность "Audit Logout" так долго?