是否可以自动化 SQL Server 2008 探查器?

Fer*_*een 4 database sql-server automation sql-server-profiler

有一篇关于有用的 SQL 技巧的帖子。在这里我将提到SQL Server Profiler工具,因为它帮助我减少了编写 SQL。我会编写 SQL 来询问、理解或再次猜测数据库业务逻辑。

Profiler 非常有用,尤其是在应用程序代码已嵌入 SQL 并且您想在尽可能短的时间内弄清楚它在做什么的情况下。(此外,您可能不知道应用程序环境中使用的是哪个源代码版本,或者更糟糕的是,在没有可用源代码的情况下!)。

我想知道探查器是否有可以挂钩的 API?

当我们想通过设置环境变量/标志(例如 PROFILER_ON=TRUE)快速检查系统内调用了什么 SQL 时,这将非常有用。然后系统可以启动 SQL 分析器,设置各种跟踪属性,然后写入日志或表 - 支持团队可以查看这些信息。

我想编写一个组件来打开分析器并监视生产环境(在安静的时候),所以不能真正改变代码库(应用程序代码和 SQL 存储过程)。

Pet*_*ert 5

您可以利用Microsoft.SqlServer.Management.Trace命名空间对象;它们针对 SQL Profiler 提供的相同功能提供 API。这是针对数据库编写自己的 sql 脚本的替代方法。但是,就像 SQL Profiler 一样,这些对象在幕后所做的是执行 SQL Trace 存储过程(或其变体)以创建、运行和管理跟踪。

如果您使用 1 个探查器实例来分析另一个实例(或使用探查器通过从跟踪中删除“NOT LIKE 'SQL Profiler...'”过滤条件(我认为这是一个应用程序名称过滤器)来分析自身,那么您将看到探查器正在执行的操作与您在 SQL 中执行的操作或 SMO 对象将通过 API 执行的操作完全相同。