【发布时间】:2011-05-06 14:44:35
【问题描述】:
在 Oracle 中,有一个名为 V$SQLAREA 的视图列出了共享 SQL 区域的统计信息,并且每个 SQL 字符串包含一行。它提供有关内存中、已解析并准备执行的 SQL 语句的统计信息。
有一列 -ROWS_PROCESSED 将代表此 SQL 语句处理的总行数相加。
我正在寻找 SQLSERVER 2005 中的附属信息。
我查看了一些 DMV(如 sys.dm_exec_query_stats),但没有找到任何相关内容。
@@ROWCOUNT 对我没有用,因为我需要增量统计信息,这些信息将汇总数据库中顶级 cpu/io/执行消耗查询的 rows_processed。
我将不胜感激有关该主题的任何帮助。
提前致谢,
罗尼。
我看到当我查询以下查询时,我收到了 XML 格式的查询计划。
在 XML 计划代码中,有一个“EstimateRows”部分,其数字与查询的估计行数相关。
我正在考虑将 query_plan 列替换为仅检索上述信息的选项(除非我会在某些系统视图/表中找到它)。
在哪里可以找到查询的实际行数?它存储在哪里?
SELECT
case when sql_handle IS NULL
then ' '
else ( substring(st.text,(statement_start_offset+2)/2,
(case when qs.statement_end_offset = -1
then len(convert(nvarchar(MAX),st.text))*2
else statement_end_offset
end - statement_start_offset) /2 ) )
end as query_text ,
query_plan,
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle)
cross apply sys.dm_exec_sql_text(sql_handle) st;
【问题讨论】:
-
我找不到想要这些信息的充分理由?
-
查看特定行是否返回大量行,然后我们可以分析应用查询 - 可能 WHERE 子句太宽泛了..
-
我们在 Oracle 分析中经常使用此信息(我们的应用程序支持 Oracle 和 SQL SERVER),我们想知道系统视图/表中是否有等效信息(统计信息)。跨度>
标签: sql sql-server-2005 statistics dmv