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

SQL Trace для прошлых запросов

Можно ли использовать профилировщик SQL 2005 Server для отслеживания запросов, которые произошли, например, 6 часов назад? Или трассировка используется только в реальном времени? Я пытаюсь найти способ просмотреть старые запросы TSQL. Возможно ли это с SQL 2005?

Простой вопрос, простой ответ: Нет. Это в реальном времени.

Трассировка выполняется только в реальном времени, хотя, если вы хотите провести некоторый аудит в своей базе данных в будущем, вы можете настроить триггеры. http://msdn.microsoft.com/en-us/library/ms189799.aspx

Профайлер фиксирует события в реальном времени, поэтому прошлые события исчезают.

Вы можете получить некоторую прошлую информацию о просмотре кеша процедур, но это не полный журнал запросов:

SELECT [cp].[refcounts] 
, [cp].[usecounts] 
, [cp].[objtype] 
, [st].[dbid] 
, [st].[objectid] 
, [st].[text] 
, [qp].[query_plan] 
FROM sys.dm_exec_cached_plans cp 
CROSS APPLY sys.dm_exec_sql_text ( cp.plan_handle ) st 
CROSS APPLY sys.dm_exec_query_plan ( cp.plan_handle ) qp ;