SQL: Как я могу получить количество выполненных запросов на базу данных или час или ...? - PullRequest
8 голосов
/ 23 марта 2012

Есть ли способ узнать, сколько запросов выполняется за каждый час, или за базу данных / час, или за среднее число запросов в день, или ... что интересно?

Просто для статистики .. Мне нравятся цифры. Я не могу просто запустить трассировку с помощью Sql Server Profiler, потому что пользовательский интерфейс будет зависать при слишком большом количестве запросов.

Отслеживает ли SQL где-то некоторую базовую "статистику выполненных запросов" или есть какие-то инструменты, которые я могу использовать для получения этой информации?

(я использую SQL Server 2008 R2)

Ответы [ 2 ]

5 голосов
/ 23 марта 2012

Это должно работать:

select * 
from sys.dm_os_performance_counters
where counter_name = 'Batch Requests/sec'

На самом деле возвращает всего Пакетных запросов. Вы периодически опрашиваете этот номер, а затем используете этот расчет:

ReqsPerSec = (curr.Value - prev.Value) / (curr.time - prev.time)
0 голосов
/ 23 марта 2012

Я только что узнал об этом в своей сертификации Microsoft.

Хотя я пока не могу ответить на ваш вопрос напрямую, я могу отправить вас в правильном направлении с парой вещей:

  1. Посмотрите на представления внутри Сервера> Базы данных> Системные базы данных> MSDB> Представления> Системные представления. MSDN Systsem Views
  2. Посмотрите на представления внутри Сервера> Базы данных> Системные базы данных> Мастер> Представления> Системные представления.
  3. Оцените инструменты трассировки, доступные для SQL Server.

В представлениях обратите внимание, что на самом деле вам, возможно, придется объединить несколько видов вместе или добраться до базовых таблиц, чтобы получить именно то, что вам нужно.

...