Назад | Перейти на главную страницу

Есть ли у MSSQL Server эквивалент журналов запросов MySQL?

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

Теперь мне нужно использовать SQL Server. Есть ли у SQL Server аналогичные средства ведения журнала? Если да, то как они называются?

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

Вам следует выполнить следующие команды DBCC:

Эта команда DBCC очищает кеш сервера и перезапускает регистрацию времени выполнения запроса:

DBCC FREEPROCCACHE

Запустите этот запрос, чтобы найти самый длинный выполняющийся запрос:

SELECT DISTINCT TOP 10
 t.TEXT QueryName,
 s.execution_count AS ExecutionCount,
 s.max_elapsed_time AS MaxElapsedTime,
 ISNULL(s.total_elapsed_time / s.execution_count, 0) AS AvgElapsedTime,
 s.creation_time AS LogCreatedOn,
 ISNULL(s.execution_count / DATEDIFF(s, s.creation_time, GETDATE()), 0) AS FrequencyPerSec
 FROM sys.dm_exec_query_stats s
 CROSS APPLY sys.dm_exec_sql_text( s.sql_handle ) t
 ORDER BY
 s.max_elapsed_time DESC
 GO 

Вам также следует взглянуть на Технет статья в журнале Оптимизация производительности запросов SQL Server, в котором есть запрос для определения, какой запрос является самым дорогостоящим запросом ввода-вывода на чтение, а также руководство по просмотру планов выполнения и других оптимизаций.

Вы можете использовать SQL Profiler для мониторинга системы в реальном времени и выявления медленно выполняющихся операторов.

SQL также может предложить индексы, которые вы можете добавить или исключить: http://msdn.microsoft.com/en-us/library/ms187974.aspx

В SQL Management Studio вы также можете просматривать отчеты, связанные с длинными запросами: щелкните правой кнопкой мыши имя сервера> отчеты> стандартные отчеты> Производительность - популярные запросы по ...

Старые медленные запросы сохраняются в MSSQL. Это уже было решено здесь:

http://blog.brianhartsock.com/2008/12/16/quick-and-dirty-sql-server-slow-query-log/