SQL SERVER数据库跟踪与筛选详解

需积分: 20 2 下载量 130 浏览量 更新于2024-09-12 收藏 226KB PDF 举报
"数据库跟踪技术主要应用于SQL SERVER,用于捕获和分析数据库操作,包括错误处理、SQL语句和存储过程的跟踪。本文由用友技术部田兴锋提供,详细介绍了如何在SQL SERVER中设置和筛选跟踪,以便更有效地获取所需数据。" 在数据库管理中,跟踪是一项重要的监控工具,它允许管理员查看和分析数据库内的活动。对于SQL SERVER,有多种事件类可以用来跟踪不同的操作。例如,"SQL:StmtStarting" 和 "SQL:StmtCompleted" 事件类用于追踪开始和结束的Transact-SQL语句,而 "SQL:BatchStarting" 和 "SQL:BatchCompleted" 事件类则关注批处理的开始和结束。此外,"SP:StmtStarting" 和 "SP:StmtCompleted" 事件类专门用于跟踪存储过程的执行。 筛选跟踪范围是提高跟踪效率的关键步骤。首先,可以通过"数据库筛选"来关注特定的数据库,例如,通过查询 `sysdatabases` 表获取DBID,然后在跟踪设置中过滤出目标数据库。例如,如果要跟踪名为"ufdata_002_2014"的数据库,可以将数据库ID(如17)输入到"列筛选器"的"databaseid"字段。 其次,"客户端筛选"可以帮助我们定位特定客户端的操作。在Windows 8环境下,可以通过任务管理器找到对应客户端的进程ID(PID),然后在"列筛选器"的"clientprocessid"字段输入该PID,从而过滤出与该客户端相关的跟踪信息。 实际操作中,跟踪会生成大量数据,因此需要有效的查找策略。例如,可以通过搜索关键词,如"update",来定位涉及数据更新的SQL语句。在查询分析器中复制并分析这些语句,可以进一步找出涉及的表和字段。例如,如果要查找与考勤号相关的更改,可能会涉及到"hr_hi_person"、"wa_psn" 和 "Person" 等表,通过查询数据库字典可以确定具体哪个字段(如 'vCardNo')是考勤号。 数据库跟踪是一种强大的诊断工具,通过精确的事件选择和范围筛选,可以有效地监控和解析SQL SERVER中的复杂操作,有助于问题排查和性能优化。理解并熟练应用这些技术,对于数据库管理员来说至关重要,能够提升他们在维护和优化数据库时的工作效率。