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

标签 sql-server profiler

有没有办法使用 Profiler 来确定表是否正在被查询访问?

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

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

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

最佳答案

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

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

关于sql-server - 使用 SQL Server Profiler 访问日志表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/296906/

相关文章:

asp.net - 网站配置不正确;获取ASP.NET进程信息失败。正在请求

sql - 如何将 GROUP 与 DATEPART 一起使用?

c++ - 如何找出我的 DLL 增长如此之多的原因

c - VC++ 内存分析器

c++ - 如何使用 Halide 分析器

java - 我在尝试使用 AWS CodeGuru 时收到此错误

python - 如何从 Linux VM 上的 Django 应用程序连接到 Azure SQL 数据库

mysql - 使用另一张表中的查询删除一张表中的行

SQL:通过是和否显示表及其作业

javascript - MS SQL 不返回 NodeJS 中的数据