如何在SQL Server Management Studio中查看查询历史记录

查询历史记录是否存储在某些日志文件中?如果是的话,你能告诉我如何找到他们的位置吗?如果没有,你能就如何看待它给我任何建议吗?



ITMISS
浏览 3867回答 3
3回答

繁星点点滴滴

正如其他人所说,您可以使用SQL事件探查器,但您也可以通过sp_trace_ *系统存储过程利用它的功能。例如,这个SQL片段(至少2000年;我认为对于SQL 2008是相同的,但你必须仔细检查)所有查询的catch RPC:Completed和SQL:BatchCompleted事件需要超过10秒才能运行,并将输出保存到您可以在以后在SQL事件探查器中打开的跟踪文件:DECLARE @TraceID INTDECLARE @ON BITDECLARE @RetVal INTSET @ON = 1exec @RetVal = sp_trace_create @TraceID OUTPUT, 2, N'Y:\TraceFile.trc'print 'This trace is Trace ID = ' + CAST(@TraceID AS NVARCHAR)print 'Return value = ' + CAST(@RetVal AS NVARCHAR)-- 10 = RPC:Completedexec sp_trace_setevent @TraceID, 10, 1, @ON     -- Textdataexec sp_trace_setevent @TraceID, 10, 3, @ON     -- DatabaseIDexec sp_trace_setevent @TraceID, 10, 12, @ON        -- SPIDexec sp_trace_setevent @TraceID, 10, 13, @ON        -- Durationexec sp_trace_setevent @TraceID, 10, 14, @ON        -- StartTimeexec sp_trace_setevent @TraceID, 10, 15, @ON        -- EndTime-- 12 = SQL:BatchCompletedexec sp_trace_setevent @TraceID, 12, 1, @ON     -- Textdataexec sp_trace_setevent @TraceID, 12, 3, @ON     -- DatabaseIDexec sp_trace_setevent @TraceID, 12, 12, @ON        -- SPIDexec sp_trace_setevent @TraceID, 12, 13, @ON        -- Durationexec sp_trace_setevent @TraceID, 12, 14, @ON        -- StartTimeexec sp_trace_setevent @TraceID, 12, 15, @ON        -- EndTime-- Filter for duration [column 13] greater than [operation 2] 10 seconds (= 10,000ms)declare @duration bigintset @duration = 10000exec sp_trace_setfilter @TraceID, 13, 0, 2, @duration您可以在联机丛书中找到每个跟踪事件,列等的ID; 只搜索sp_trace_create,sp_trace_setevent和sp_trace_setfiler sprocs。然后,您可以按如下方式控制跟踪:exec sp_trace_setstatus 15, 0       -- Stop the traceexec sp_trace_setstatus 15, 1       -- Start the traceexec sp_trace_setstatus 15, 2       -- Close the trace file and delete the trace settings...其中'15'是跟踪ID(由sp_trace_create报告,第一个脚本在上面启动)。您可以检查以查看正在运行的跟踪:select * from ::fn_trace_getinfo(default)我唯一要注意的是 - 我不知道这会给你的系统增加多少负载; 它会添加一些,但“some”的大小可能取决于服务器的繁忙程度。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server