Мониторинг проблем производительности SQL JOB - PullRequest
0 голосов
/ 06 октября 2009

Я работаю над заданием SQL, которое включает обработку около 75000 записей.

Теперь работа отлично работает для 10000/20000 записей со скоростью около 500 / мин. После примерно 20000 записей исполнение просто умирает. Он загружает около 3000 записей каждые 30 минут и работает с аналогичной скоростью.

Я задал похожий вопрос вчера и получил несколько хороших предложений по изменению процедуры. Вот ссылка: Несоответствующая производительность SQL SERVER

Я все еще не уверен, как найти реальную проблему здесь. Вот несколько вопросов, которые у меня есть:

  1. Если проблема в базе данных tempdb, как я могу отслеживать действия в базе данных tempdb?
  2. Как я могу проверить, является ли узкое место сетью?
  3. Существуют ли другие способы найти разницу между тем, когда работа выполняется быстро и когда она замедляется?

Ответы [ 2 ]

2 голосов
/ 06 октября 2009

Я был администратором пары крупных реализаций хранилища данных, где этот тип проблемы был распространен. Хотя я не могу быть в этом уверен, звучит так, что производительность вашего сервера снижается либо из-за растущих файлов журнала, либо из-за использования памяти. Отличным инструментом для рассмотрения подобных проблем является Perfmon.

Отличную статью об использовании этого инструмента можно найти здесь

1 голос
/ 06 октября 2009

Если ваш сервер действительно не отключен, 75000 записей не должны быть проблемой для базы данных tempdb, поэтому я действительно сомневаюсь, что это ваша проблема.

Ваш предыдущий вопрос касался SQL Server, поэтому я бы посоветовал запустить трассировку во время работы proc. Вы можете получить информацию о времени выполнения и т. Д. Из трассировки и использовать ее, чтобы определить, где или что замедляет работу.

Вы должны выполнять обработку каждого клиента отдельными транзакциями или небольшими группами клиентов. В противном случае рабочий набор элементов, которые должна записать конечная транзакция, продолжает увеличиваться, и каждое добавление вызывает перезапись. В итоге вы можете принудительно выгружать текущие данные, и действительно замедляет работу.

Проверьте память, выделенную для SQL Server. Если он слишком мал, вы в конечном итоге подкачки процессов SQL Server. Если он слишком большой, вы можете оставить ОС без достаточного количества памяти.

...