Вы можете использовать
1) трассировки SQL (включая SQL Profiler) для перехвата {SP: StmtCompleted | SP: StmtCompleted} с со следующими столбцами процессорное время, продолжительность/прошедшее время, начиная & Время окончания каждого запроса
или
2) Расширенные события сессий (SQL2008 +)
В оба случая, эти события (%:StmtCompleted
) могут оказать негативное влияние на производительность сервера, поэтому не используйте эти методы на тяжелом используемом сервере (производство). Если у вас проблемы с производительностью на производственном сервере, это может усугубить проблему.
3) Вместо этого, если вы хотите, чтобы обнаружить те {запросы/SQL модули} с проблемами производительности можно использовать
SQL2005 + sys.dm_exec_query_stats
SQL2008 + sys.dm_exec_proc_stats
SQL2008 + sys.dm_exec_trigger_stats
Пример:
SELECT TOP(50) ...
total_worker_time *1.00/execution_count AS Avg_CPU_time,
total_elapsed_time *1.00/execution_count AS Avg_Duration,
total_logical_reads *1.00/execution_count AS Avg_LIO_time
FROM sys.dm_..._stats
ORDER BY Avg_LIO_time DESC
Вы можете использовать скрипты Гленн Берри http://sqlserverperformance.wordpress.com/2013/11/15/sql-server-diagnostic-information-queries-for-november-2013/
Сформировать реальный план выполнения, выполнив запрос в наш бесплатный инструмент, [SQL Sentry Plan Проводник] (http://sqlsentry.net/plan-explorer/). Никакая попытка с любыми командами 'SET' - все это просто сделано для вас автоматически. –
Принадлежит dba.stackexchange.com – Benjamin