У нас есть странный случай в поведении запросов к SQL Server.
У нас есть пара запросов, которые отлично выполняются для 1 базы данных, но для другой (с очень похожим количеством записей) она выполняется «навсегда».На одной БД она выполняется примерно за 5 секунд, а на другой я убил процесс через 25 минут.
Что мы знаем:
- В базе данных, которая занимаетдолгое время запрос начинает использовать 100% ЦП, и весь сервер останавливается.
- Глядя на таблицу sysprocesses, существует 9x SOS_SCHEDULER_YIELD waittypes для плохой базы данных с высокой загрузкой ЦП (все в работоспособном состоянии)
- Такое поведение хорошее против плохого, по-видимому, происходит только при запуске кода через .NET CLR (Visual Studio, LinqPad).При получении результирующего оператора SQL и его выполнении в SSMS обе базы данных работают нормально.Таким образом, кажется, что это не что-то в запросе, но, возможно, что-то в БД.
- Перестройка индексов или восстановление БД не имеет значения.
(яКонечно, кто-то может попросить образец запроса, но, похоже, это происходит по разным запросам. Мы бы предпочли исправить базу данных, а не проходить все запросы и исправлять их по одному.)
Любые советы или предложения приветствуются.