Получение данных об использовании хранимых процедур в SQL Server 2000 - PullRequest
2 голосов
/ 20 марта 2009

Каков наилучший способ получения данных об использовании хранимых процедур в конкретной базе данных из SQL Server 2000?

Мне нужны следующие данные:

  1. Общее количество вызовов хранимых процедур за время X
  2. Общее количество каждого конкретного вызова хранимой процедуры за время X.
  3. Общее время, затраченное на обработку всех хранимых процедур за время X.
  4. Общее время, потраченное на обработку определенных хранимых процедур за время X.

Моим первым предположением было настроить SQL Profiler с набором фильтров для сбора этих данных. Что мне не нравится в этом решении, так это то, что данные должны быть записаны в файл или таблицу где-нибудь, и мне придется делать подсчет чисел, чтобы выяснить, какие результаты мне нужны. Я также хотел бы получить эти результаты в течение многих дней, пока я применяю изменения, чтобы увидеть, как эти изменения влияют на базу данных.

У меня нет прямого доступа к серверу для запуска SQL Profiler, поэтому мне нужно создать файл шаблона трассировки и отправить его моему администратору базы данных, чтобы они запустили его через X раз и вернули мне результаты.

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

Редактировать: Может быть, есть какие-то рекомендуемые инструменты, которые могут работать с файлом трассировки, который создает профиль, чтобы дать мне необходимую статистику?

Ответы [ 2 ]

2 голосов
/ 20 марта 2009

Я вижу два варианта:

  1. Перепишите сценарий и перекомпилируйте ваши sprocs, чтобы вызвать sproc протоколирования. Этот sproc будет вызываться всеми вашими sprocs, которые хотят отслеживать перфект. Запишите это в таблицу с именем sproc, текущей датой и всем остальным, что вам нужно. Pro : легко обратимый, так как у вас будет копия ваших звезд в сценарии, которую вы легко сможете отменить. Легко запрашиваемый! Con : снижение производительности при каждом запуске звездочек, которые вы пытаетесь измерить.

  2. Перекомпилируйте слой доступа к данным с кодом, который будет записывать в текстовый файл журнала в начале и в конце каждого вызова sproc. Вы наследуете свой DAL от одного класса, где вы можете вставить этот код регистрации в одном месте? Pro : Нет беспорядка в БД, и вы можете включать и выключать сборку, когда хотите остановить это измерение производительности. Можно даже настроить с помощью включения / выключения в app.config. Con : дисковый ввод / вывод.

0 голосов
/ 21 марта 2009

Возможно, может помочь создание трассировки SQL Server вне SQL Profiler.

http://support.microsoft.com/kb/283790

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

Отслеживание следов: http://support.microsoft.com/kb/283786/EN-US/

...