Ran alın?TSQL: Son Sorgular son birkaç sorguları için SQL metni almak için bir yolu var mı
Microsoft SQL Server kullanıyorum 2005
Ran alın?TSQL: Son Sorgular son birkaç sorguları için SQL metni almak için bir yolu var mı
Microsoft SQL Server kullanıyorum 2005
Evet, bir göz atın, bu 50 En son çalıştırılan SQL beyanlara size yukarı
sql 2005 ve yalnızca
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
Bildiğim kadarıyla tek yolu SQL Server Profiler çalışan sahip olmaktır. Ne yazık ki, bu işlemin yürütülmekte olan sorgulardan önce başlatılması gerekiyor, bu yüzden "ad hoc" temelinde gerçekleşen bir şeyi yakalamayı umuyorsanız, uygun olmayacaktır. Bir kod parçasının ne yaptığını izlemeye çalışıyor ve yürütmekte olduğu sorguları yakalamak istiyorsa, bir tedavi çalışması yapmalısınız.
SQL Server 2005+ kullanılıyorsa:
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
Büyük uç SQLAuthority dan!
37000 (321) [Microsoft] [ODBC SQL Server sürücüsü] [verecektir SQL Server] "sql_handle" tanınmış bir tablo ipucu seçeneği değil. Tablo değerli bir işlev için bir parametre olarak amaçlanmışsa, veritabanı uyumluluk modunuzun 90 olarak ayarlandığından emin olun. –
2005 ve yukarda söylediğim gibi, 2000 çalışma profiler için. Bir sonraki sefer SQL Server'ın hangi sürümünü çalıştırdığınızı belirtin – SQLMenace
Microsoft SQL Server 2005 - 9.00 –