Так что я работаю с большой базой данных (30 гигов) SQL 2005 с веб-интерфейсом .net 3.5 в 10-летней системе.У него есть новые и старые биты
Мы сталкиваемся с проблемой, которая возникает все чаще и чаще.
Сохраненный процесс (у нас было 4 разных) решает, что он истечет,Вызов происходит с веб-сервера, и он достигает 30-секундного тайм-аута и записывается в наш журнал ошибок.Веб-сайт использует один логин (я знаю, что это неправильно, но его нельзя изменить из-за устаревшего кода).
Сразу после этого я выполняю тот же самый вызов, и это занимает (вошел как я) 1 сек.
Проблема остается в этом сохраненном процессе, пока мы не выпадем и не воссоздадим его, получая загрузкитайм-ауты.Каждый вызов sp имеет разные параметры.Как и в случае со мной все неподписанные смены, относящиеся к текущему пользователю, поэтому текущий пользователь передается в качестве параметра
Решение работает, но я не совсем понимаю, почему.
Наш выпускцикл составляет две недели, и эта ошибка происходит в любое время в течение него.Это происходит на следующий день после релиза, через неделю после релиза, а последний был через 12 дней после релиза.
Для каждого релиза мы выполняем SQL-скрипт со всеми сохраненными procs / triggers / functions / views при каждом удалениии воссоздание самого себя.
Все, что я могу думать, - это то, что сохраненный план выполнения процедуры поврежден / поврежден, и удаление его при повторном создании очищает это.
Я думаю о вызове опции sps WITH RECOMPILE,это нет-нет ??или приемлемый способ