加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 使用SQL Server Profiler进行日志表访问

发布时间:2020-12-12 16:19:45 所属栏目:MsSql教程 来源:网络整理
导读:有没有办法使用Profiler来确定查询是否正在访问表? 我看到一个名为Object:Opened的事件(表示何时访问了一个对象,例如SELECT,INSERT或DELETE语句)和Object:Closed,但这些似乎不起作用. 特别是,我使用Object:Opened和Object创建了一个简单的跟踪:没有过滤
有没有办法使用Profiler来确定查询是否正在访问表?

我看到一个名为Object:Opened的事件(表示何时访问了一个对象,例如SELECT,INSERT或DELETE语句)和Object:Closed,但这些似乎不起作用.

特别是,我使用Object:Opened和Object创建了一个简单的跟踪:没有过滤器关闭(标准的“应用程序名称不像’SQL Profiler’”过滤器除外)并运行SELECT TOP 1 * FROM TableName,但没有报告任何事件.

那么,有没有办法使用Profiler来确定是否正在从中选择一个表?

解决方法

调查SQL正在获取的锁可能有所帮助. Select语句通常会获取共享锁(LCKMS),因此您可以对此进行过滤.

在Profiler中查找Locks:Acquired事件. ObjectID将解析为您可以使用OBJECT_NAME(objectid)轻松查找的表.模式将告诉您正在获取的锁的类型共享锁是3.有关更多信息,请查看here.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读