SQL Server 2005 Скорость выпуска - PullRequest
0 голосов
/ 27 июня 2011

Мы пытаемся запустить хранимую процедуру, которая сделает небольшое обновление для каждой строки таблицы с более чем 10 миллионами строк (это большая база данных, как вы можете себе представить). Мы работаем с SQL Server 2005.

Хранимая процедура, которую я создал, ведет себя странно. Когда он запускается, он движется очень медленно, занимая очень мало ресурсов процессора. Затем он внезапно всплывает в течение часа или двух, занимая 99% ресурсов ЦП, и в этот момент он движется очень быстро (что нам и нужно).

Но потом вдруг снова замедляется, работает очень медленно!

Мы хотим, чтобы он работал быстро (т. Е. Занимал все необходимые ресурсы), чтобы он мог завершить задачу (поскольку это ОДНА ВРЕМЯ хранимая процедура, предназначенная для обновления базы данных).

Наш сервер имеет следующие ресурсы: процессор Intel (R) Xeon (R) E5520 @ 2,27 ГГц, 2,27 ГГц, 18 ГБ оперативной памяти

Может ли кто-нибудь помочь мне понять, почему SQL Server делает это, и как исправить мою хранимую процедуру, чтобы она работала быстро и использовала доступные ресурсы ПОСТОЯННО?

1 Ответ

0 голосов
/ 27 июня 2011

Начните с определения того, что происходит, когда SP работает медленно - узкое место на вашем диске или, возможно, связано с сетью?

Вы можете следовать замечательному руководству Брента Озара по использованию perfmon, чтобы определить именно это: http://www.brentozar.com/archive/2006/12/dba-101-using-perfmon-for-sql-performance-tuning/

Как только вы знаете, где находится узкое место, становится намного легче определить основную проблему.SP присоединяется к другим таблицам?Существует ли неравномерное распределение объединенных данных, вызывающее большее количество дискового ввода-вывода в определенных строках по сравнению с другими?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...