在 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;