在Oracle中,有一个称为V $ SQLAREA的视图,该视图列出了共享SQL区域上的统计信息,并包含每个SQL字符串的一行。它提供有关存储器,解析并准备执行的SQL语句的统计信息。

有一个列-Rows_processed代表此SQL语句总和处理的行总数。

我正在寻找SQLServer 2005中的抵押信息。

我查看了一些DMV(例如sys.dm_exec_query_stats),但我没有找到任何相关的东西。

@@ rowcount对我不会有用,因为我想要增量统计信息,这些信息将汇总数据库中最高CPU/IO/执行消费查询的ROWS_PROCESS。

我将感谢有关该主题的任何帮助。

提前致谢,

罗尼。


我看到,当我查询以下查询时,我会在XML中收到查询计划。

在XML计划代码内部,有一个“估算物质”部分,其中一个数字与查询的估计行相关。

我正在考虑将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;
有帮助吗?

解决方案

据我所知,尤其是对于划分的直接等效物。相关的DMVS跟踪IO成本,用于显示缺失的索引,最昂贵的查询等

这将为您提供当前会话的每个SQL语句的统计信息。 YMMV:我只是根据我周围的脚本将其放在一起。

SELECT 
    *
FROM 
    sys.dm_exec_query_stats  QS
    CROSS APPLY 
    sys.dm_exec_sql_text(sql_handle) ST

我的脚本是基于链接的 这里提到

其他提示

您可以使用系统变量@@ rowcount来了解受上一句影响的记录数。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top