使用 SQL Server Profiler打开跟踪时,如果跟踪文件是由 SQL Server Profiler或 SQL 跟踪系统存储过程创建的,则该文件不需要带 trc 文件扩展名。
注意
SQL Server Profiler还可以读取 SQL 跟踪 log 文件和通用 SQL 脚本文件。打开不带 log 文件扩展名的 SQL 跟踪 log 文件(例如 tracetxt)时,应将文件格式指定为 SQLTrace_Log。
您可以配置 SQL Server Profiler日期和时间显示格式以便有助于跟踪分析。
排除数据故障
使用 SQL Server Profiler时,您可以按“持续时间”、CPU、“读”或“写”数据列将跟踪或跟踪文件分组来排除数据故障。例如,您可以对性能差的查询或逻辑读取 *** 作数特别高的查询进行数据故障排除。
通过将跟踪保存至表和使用 Transact-SQL 查询事件数据,可以找到其他信息。例如,若要确定哪些 SQL:BatchCompleted 事件的等待时间过长,可执行:
SELECT TextData, Duration, CPU
FROM trace_table_name
WHERE EventClass = 12 -- SQL:BatchCompleted events
AND CPU < (Duration 1000)
注意
服务器以微秒(百万分之一秒或 10-6 秒)为单位报告事件的持续时间,以毫秒(千分之一秒或 10-3 秒)为单位报告事件使用的 CPU 时间。SQL Server Profiler 图形用户界面默认以毫秒为单位显示“持续时间”列,但是当跟踪保存到文件或数据库表中时,将以微秒为单位写入“持续时间”列值。
查看跟踪时显示对象名称
如果您要显示对象名称而不是对象标识符(对象 ID),必须捕获“服务器名称”和“数据库 ID”数据列以及“对象名称”数据列。
如果您选择按“对象 ID”数据列分组,请确保先按“服务器名称”和“数据库 ID”数据列分组,然后按“对象 ID”数据列分组。同样,如果您选择按“索引 ID”数据列分组,请确保先按“服务器名称”、“数据库 ID”和“对象 ID”数据列分组,然后按“索引 ID”数据列分组。您必须按照此顺序分组,因为对象 ID 和索引 ID 在服务器和数据库之间并不是唯一的,而索引 ID 甚至在各对象之间都不是唯一的。
查找跟踪内的特定事件
若要查找跟踪中的事件并对事件进行分组,请按下列步骤执行 *** 作:
创建跟踪。
定义跟踪时,除了要捕获的任何其他数据列外,还要捕获“事件类”、ClientProcessID 和“开始时间”数据列。有关详细信息,请参阅创建跟踪 (SQL Server Profiler)。
按“事件类”数据列将捕获的数据分组,并将跟踪捕获至文件或表。若要将捕获的数据分组,请单击“跟踪属性”对话框中“事件选择”选项卡中的“组织列”。有关详细信息,请参阅组织跟踪中显示的列 (SQL Server Profiler)。
开始跟踪,并在经过适当时间或捕获了一定数量的事件后停止。
查找目标事件。
打开跟踪文件或表,并展开所需事件类的节点,例如,Deadlock Chain。有关详细信息,请参阅打开跟踪文件 (SQL Server Profiler)或打开跟踪表 (SQL Server Profiler)。
在跟踪数据中搜索直到找到所需的事件(使用 SQL Server Profiler的“编辑”菜单上的“查找”命令帮助查找跟踪中的值)。记录所跟踪事件的 ClientProcessID 和“开始时间”数据列中的值。
在上下文中显示事件。
显示跟踪属性,并按 ClientProcessID 数据列分组而不是按“事件类”数据列分组。
展开要查看的每个客户端进程 ID 的节点。手动搜索整个跟踪,或使用“查找”直到找到目标事件先前标记的“开始时间”值。这些事件与属于每个选定客户端进程 ID 的其他事件一起按时间顺序进行显示。例如,跟踪内捕获的“死锁”和“死锁链”事件在展开的客户端进程 ID 内紧跟在“SQL:BatchStarting”事件之后显示。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)