有啥方法可以在 Sql Profiler 或类似工具中获取 .net 堆栈跟踪?

Posted

技术标签:

【中文标题】有啥方法可以在 Sql Profiler 或类似工具中获取 .net 堆栈跟踪?【英文标题】:Is there any way I can get .net stack traces in Sql Profiler, or a similar tool?有什么方法可以在 Sql Profiler 或类似工具中获取 .net 堆栈跟踪? 【发布时间】:2010-09-17 10:19:57 【问题描述】:

在我之前的工作中,我设计并帮助构建了一个运行时(生产)Profiler tool,除了其他很酷的功能之外,它还能够为我执行的每个 SQL 语句提供 .Net 堆栈跟踪。将其视为类固醇上的 SQL-Server Profiler。因此,您不仅可以查看 SQL 语句和持续时间,还可以获得 SQL 执行的上下文。在开发以数据库为中心的应用程序时,我发现这些信息是天赐良机。

问题是,由于这是我以前的公司开发的,已被赛门铁克收购,虽然该工具仍然可以下载,但很不清楚许可是什么,也不是 Symnatec 销售的 SKU。

我想知道是否有人知道任何类似的工具可以为我的 SQL 语句执行提供堆栈跟踪?

alt screenshot http://img151.imageshack.us/img151/4357/profiler1jz3.gif

这仍未得到答复,ANTS 等人不这样做,考虑只是回答“否”并接受它。

【问题讨论】:

【参考方案1】:

我不确定它是否能完全满足您的需求,但我为 .Net 找到的最佳分析工具是 ANTS Profiler,如果我记得它会显示 SQL 以及所有 .net 调用。

【讨论】:

【参考方案2】:

我们最近启动了一个名为dynaTrace 的工具。有一个工作站版本可以在一个机器上使用,还有一个服务器/代理版本可以在多个机器上运行。

基本上,您可以针对特定应用程序(或 IIS)设置该工具。之后,它将收集对其进行检测的方法调用。在您的场景中,您可能会针对整个命名空间进行检测并获取所有内容。

基本上,它会通过使用 IL 注入来跟踪每个方法调用。它通过检测 ADO.Net 来获取数据库调用,包括 SP 中的绑定变量。它显然也可以跨 Web 服务调用进行跟踪。

这很酷,因为您可以查看特定方法,查看调用该方法的所有路径,或查看对方法的所有调用。您可以查看特定的数据库调用,并查看该调用的所有代码路径。

这很酷。

【讨论】:

【参考方案3】:

我在这里发布了一个答案,它汇集了来自几篇帖子的信息,以及一个可用作 mysql 的穷人查询监视器的应用程序:

How can I view live MySQL queries?

【讨论】:

以上是关于有啥方法可以在 Sql Profiler 或类似工具中获取 .net 堆栈跟踪?的主要内容,如果未能解决你的问题,请参考以下文章

怎样在sql server profiler跟踪时只显示自己关心的内容

使用SQL SERVER PROFILER 捕获和分析思索

有啥方法可以将 SQL Server 的 dbo.HashPasswordString() 与类似于 md5() 的 PHP 一起使用?

SQL优化工具 - SQL Server Profiler与数据库引擎优化顾问

如何将 SQL Server Profiler 2008 的输出转储到类似 CSV 的文件

如何设置跟踪定义默认设置 (SQL Server Profiler)