У меня есть пара запросов, вызванных из веб-приложения C # .NET, которые всегда бывают быстрыми для меня (я являюсь локальным администратором на SQL Server), но для группы пользователей (группа домена с необходимыми разрешениями) запрос невероятно медленный Дело в том, что время ожидания в приложении.
Что может привести к тому, что один и тот же запрос будет выполняться по-разному для разных пользователей?
Больше информации:
- Запрос является встроенным SQL в коде C #, а не хранимой процедурой.
- Приложение использует аутентификацию домена, и пользователь и я запускаем запрос через приложение
- Похоже, проблема в разных планах, и один из них был кэширован, поэтому он был разным для разных пользователей. Что-то влияет на кеш, потому что теперь запрос для меня медленный через приложение и быстрый в SQL Server Management Studio.
exact same query
), это не должно быть отслеживание параметров (пользователи получают неверный план для неправильных параметров), а пользователи получают разные планы для одного и того же параметра (с). Это может быть связано с такими настройками, как quoted_identifier
и arithabort
, которые можно сравнивать sys.dm_exec_sessions
для быстрого и медленного пользователей, или из-за того, что у них разные схемы по умолчанию, и на объекты ссылаются без префикса схемы. Возможно, все еще задействован анализ параметров (поэтому у одного из них плохой план).