2013-11-27 4 views
1

Как я могу получить временные моменты, ограничивающие запуск и завершение SQL-запроса в SQL Server? Если я устанавливаю время статистики, есть ли способ добавить результирующее время cpu/elapsed к текущему времени datetime?Время начала запроса SQL Server

Благодаря

+1

Сформировать реальный план выполнения, выполнив запрос в наш бесплатный инструмент, [SQL Sentry Plan Проводник] (http://sqlsentry.net/plan-explorer/). Никакая попытка с любыми командами 'SET' - все это просто сделано для вас автоматически. –

+0

Принадлежит dba.stackexchange.com – Benjamin

ответ

1

Вы можете использовать

1) трассировки SQL (включая SQL Profiler) для перехвата {SP: StmtCompleted | SP: StmtCompleted} с со следующими столбцами процессорное время, продолжительность/прошедшее время, начиная & Время окончания каждого запроса

enter image description here

или

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/

Смежные вопросы