SQL: как я могу получить количество выполненных запросов в базе данных или час или ...?

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

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

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

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

2 ответов


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

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

он фактически возвращает в общей сумме Пакетные Запросы. Вы периодически опрашиваете это число, а затем используете этот расчет:

ReqsPerSec = (curr.Value - prev.Value) / (curr.time - prev.time)

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

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

  1. посмотреть мнения внутри сервера > базы данных > системы баз > данных > вид > вид системы. представления MSDN Systsem
  2. посмотрите на представления внутри сервера > базы данных > системные базы данных > мастер > представления > система Просмотр.
  3. возьмите пик в средствах трассировки, доступных для SQL Server.

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