【发布时间】:2011-06-27 21:17:00
【问题描述】:
通过 Management Studio 执行 T-SQL 查询时,我可以使用 SET STATISTICS IO ON 和 SET STATISTICS TIME ON 捕获统计信息以进行查询调优。
当我使用 .NET 客户端 API 执行 T-SQL 查询而不是使用 Mangaement Studio 的 UI 时,如何收集相同的统计信息?
这似乎是一件显而易见的事情,但在搜索 MSDN 和 Google 一段时间后,我被难住了。我发现的最接近的是 MSDN 上的Provider Statistics for SQL Server (ADO.NET),但从客户端的角度来看,这些统计数据似乎是关于网络连接的客户端统计数据(例如发送/接收的字节数),而不是我正在寻找的服务器端统计数据。
【问题讨论】:
-
嗨贾斯汀我明白你的观点是从查询中获取这些信息,这很有用,但你会如何想象接收这些数据?当你运行 ExecuteScalar 你得到一个对象,如果你用一个适配器填充一个数据集,你就有一个数据集或数据表,你怎么能想象从服务器获取文本数据呢?只是一个字符串,包含您在 SSMS 的消息选项卡中看到的所有内容?
-
@davide - 除了通过返回值(您正确指出在像 ExecuteScalar 这样的情况下不会有太大帮助)之外,挂钩操作的常用方法是通过事件处理程序。在调用该方法之前,您添加一个处理程序,并在执行查询时调用您的处理程序。请查看下面的答案以获取更多信息。我仍然需要解析返回的文本,但总比没有信息要好!
标签: .net sql-server tsql ado.net query-tuning