Я тестирую хранимую процедуру на SQL Server 2008 R2 Express. В конце концов, он будет запущен в производство на полной версии SQL Server 2008 R2.Тайм-аут хранимой процедуры SQL Server при первом запуске
Тестирование хранимой процедуры в Studio Management Я замечаю, что при первом запуске после восстановления базы данных или перезапуска службы SQL Server процедура занимает около 35 секунд. Второе и последующее время завершается мгновенно.
Исходя из этого, я предполагаю, что для плана запроса требуется некоторое время. Симптомы, похоже, совпадают с тем, что заставляет воссоздать план запроса.
Моя проблема в том, что я выполняю эту хранимую процедуру из своего приложения на C#, если она длится более 30 секунд. Я думаю, что я понял, как увеличить тайм-аут, но из всех тем, которые я прочитал, люди говорят, что во всех исключительных обстоятельствах 30 секунд должны быть кучей времени. «Исправить проблему не увеличить таймаут».
Поскольку эта хранимая процедура будет выполняться только один раз в месяц, вероятность того, что она будет создавать новый план запроса каждый раз, будет очень хорошей.
Ни одна из моих других хранимых процедур не имеет этой проблемы.
Любые идеи о наилучшем способе диагностики реальной проблемы?
Процедура не слишком сложна, она читается из пары соединенных таблиц и вставляет около 4000 строк в другую таблицу на основе нескольких условий. Я не лучший SQLer в мире, поэтому, возможно, я сделал некоторые глупые вещи.
Я не могу добавить индексы в базу данных или что-либо еще, как это относится к бизнес-приложению, написанному внешней компанией. Поэтому я очень осторожно вносил какие-либо изменения, так как это может вызвать другие непредвиденные проблемы.
Дайте мне знать, если вы считаете, что стоит разместить здесь свой код sql.
Благодаря Дэвид