有没有办法使用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.
原文链接:https://www.f2er.com/mssql/83088.html