有啥方法可以在 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 的 dbo.HashPasswordString() 与类似于 md5() 的 PHP 一起使用?
SQL优化工具 - SQL Server Profiler与数据库引擎优化顾问