Есть ли способ получить текст SQL для последних нескольких запросов?TSQL: Получить последние запросы Ran
Я использую Microsoft SQL Server 2005
Есть ли способ получить текст SQL для последних нескольких запросов?TSQL: Получить последние запросы Ran
Я использую Microsoft SQL Server 2005
Да, посмотрите, это даст вам 50 последних выполненных инструкций SQL
SQL Server 2005 и выше только
SELECT TOP 50 * FROM(SELECT COALESCE(OBJECT_NAME(s2.objectid),'Ad-Hoc') AS ProcName,
execution_count,s2.objectid,
(SELECT TOP 1 SUBSTRING(s2.TEXT,statement_start_offset/2+1 ,
((CASE WHEN statement_end_offset = -1
THEN (LEN(CONVERT(NVARCHAR(MAX),s2.TEXT)) * 2)
ELSE statement_end_offset END)- statement_start_offset)/2+1)) AS sql_statement,
last_execution_time
FROM sys.dm_exec_query_stats AS s1
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2) x
WHERE sql_statement NOT like 'SELECT TOP 50 * FROM(SELECT %'
--and OBJECTPROPERTYEX(x.objectid,'IsProcedure') = 1
ORDER BY last_execution_time DESC
Единственный способ я знаю, чтобы иметь SQL Server Profiler ход. К сожалению, это нужно запускать до выполнения запросов, поэтому, если вы надеетесь поймать что-то, что произошло на «ad hoc», оно не подходит. Если вы пытаетесь отследить, что делает часть кода, и хотите захватить запрошенные им запросы, это должно сработать.
При использовании 2005+ SQL Server:
SELECT deqs.last_execution_time AS [Time], dest.TEXT AS [Query]
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
ORDER BY deqs.last_execution_time DESC
Большой наконечник от SQLAuthority!
37000 (321) [Microsoft] [ODBC SQL Server Driver] [ SQL Server] «sql_handle» не является признанным вариантом подсказок. Если он предназначен как параметр для функции, ориентированной на таблицу, убедитесь, что для режима совместимости с базой данных установлено значение 90. – 2010-08-26 20:20:05
Как я уже сказал, 2005 год и только для профайлера 2000 года. В следующий раз укажите, какая версия сервера sql вы используете. – SQLMenace
Microsoft SQL Server 2005 - 9.00 – 2010-08-26 20:22:57