У меня проблема с моим SQL Server 2005, когда хранимые процессы, особенно те, которые запускают групповые вставки, иногда выполняются очень долго. Этот сохраненный процесс, назовем его DatabaseUpdate, должен занять около 2 секунд. Тем не менее, в 20-40% случаев это занимает гораздо больше времени, и очень часто оно истекает через 30 секунд.
Что такого странного в том, что у меня очень контролируемая среда. Журналы, которые я сейчас просматриваю, показывают период, в течение которого одни и те же события происходят через равные промежутки времени. Есть несколько клиентов, и все они делают запросы на основе таймеров, и все эти машины работают с приложениями атомной синхронизации часов. Так что я могу с уверенностью сказать, что одна и та же последовательность событий происходит каждые пять минут, но мой сохраненный процесс, который импортирует файл размером 100 КБ в базу данных, отличается по времени выполнения от 1,5 до 30 с.
То, что я раньше не замечал, потому что я видел только ошибки тайм-аута, это то, что более длительные времена выполнения происходят при каждом другом обновлении, поэтому времена выглядят так:
10: 30 2062 мс
10:35 24250 мс
10:40 1921 мс
10:45 25703 мс
10:50 1734 мс
10:55 25406 мс
11:00 1625 мс
Есть идеи?