sqlserver是一种广泛使用的关系型数据库管理系统,它提供了强大的数据存储和处理能力。在使用sqlserver进行数据操作时,有时我们需要查看sql执行记录,以便分析sql语句的执行效率和性能问题。那么,如何在sqlserver中查看sql执行记录呢?本文将介绍三种常用的方法。
方法一:利用sqlserver的动态管理视图
动态管理视图(DMV)是sqlserver提供的一种特殊的视图,它可以显示当前服务器实例的状态信息,包括连接、会话、事务、锁、缓存、执行计划等。通过查询DMV,我们可以获取到sql执行记录的相关信息,例如执行时间、逻辑读写次数、物理读写次数、CPU时间等。以下是一个简单的示例:
1.-查询当前数据库中最近执行过的sql语句及其相关信息
qs.execution_count AS exec_count, --执行次数
qs.total_logical_reads AS total_logical_reads, --总逻辑读次数
qs.total_logical_writes AS total_logical_writes, --总逻辑写次数
qs.total_physical_reads AS total_physical_reads, --总物理读次数
qs.total_worker_time AS total_cpu_time, --总CPU时间
qs.total_elapsed_time AS total_elapsed_time, --总执行时间
qs.last_execution_time AS last_exec_time --最后执行时间
FROM sys.dm_exec_query_stats AS qs --查询统计信息视图
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st --关联sql文本视图
ORDER BY qs.last_execution_time DESC --按最后执行时间降序排序
方法二:利用sqlserver的跟踪工具
跟踪工具是sqlserver提供的一种用于监视和分析服务器活动的工具,它可以捕获服务器上发生的事件,并将其保存到跟踪文件或跟踪表中。通过跟踪工具,我们可以查看sql执行记录的详细信息,例如事件类型、事件子类型、事件类别、事件数据等。以下是一个简单的示例:
1.-创建一个跟踪文件
DECLARE @trace_file VARCHAR(100) --跟踪文件路径
SET @trace_file = 'C:\\temp\\trace.sql' --设置跟踪文件路径
EXEC sp_trace_create @trace_id OUTPUT, 0, @trace_file --创建跟踪文件并返回跟踪ID
1.-添加需要捕获的事件和列
2.-以下为示例,可根据需要自行修改或添加
3.-事件ID和列ID可参考https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-trace-setevent-transact-sql?view=sql-server-ver15
EXEC sp_trace_setevent @trace_id, 10, 1, 1 --添加RPC:Completed事件和TextData列
EXEC sp_trace_setevent @trace_id, 10, 12, 1 --添加RPC:Completed事件和SPID列
EXEC sp_trace_setevent @trace_id, 10, 13, 1 --添加RPC:Completed事件和Duration列
EXEC sp_trace_setevent @trace_id, 10, 14, 1 --添加RPC:Completed事件和StartTime列
EXEC sp_trace_setevent @trace_id, 10, 15, 1 --添加RPC:Completed事件和EndTime列
1.-启动跟踪
2.-执行一些sql语句,例如
3.-停止跟踪
4.-关闭跟踪
5.-查看跟踪文件中的内容
方法三:利用sqlserver的执行计划
执行计划是sqlserver提供的一种用于显示sql语句的执行过程和资源消耗的工具,它可以帮助我们理解和优化sql语句的性能。通过执行计划,我们可以查看sql执行记录的关键信息,例如操作类型、操作成本、操作属性、操作输出等。以下是一个简单的示例:
1.-设置显示执行计划的选项
SET SHOWPLAN_TEXT ON --显示文本格式的执行计划
1.-SET SHOWPLAN_XML ON --显示XML格式的执行计划
2.-SET STATISTICS PROFILE ON --显示统计信息和文本格式的执行计划
3.-执行一个sql语句,例如
4.-查看执行计划的输出,例如