Pregunta

En Oracle, hay una vista denominada V $ SQLAREA que las listas de estadísticas sobre la superficie de SQL compartida y contiene una fila por cada cadena SQL. Proporciona estadísticas sobre las sentencias SQL que se encuentran en la memoria, analizada, y listo para su ejecución.

Hay una columna que -ROWS_PROCESSED sumas el número total de filas procesadas en nombre de esta instrucción SQL.

Estoy buscando información colateral en SQLSERVER 2005.

Me parecía en algunos de los DMV (como sys.dm_exec_query_stats), pero no he encontrado nada relacionado.

@@ ROWCOUNT no será útil para mí, como yo quiero que la información estadística incrementales que sumar la rows_processed de la CPU principales consultas de consumo / io / ejecución en la base de datos.

Le agradecería cualquier ayuda en lo que respecta al tema.

Gracias de antemano,

Roni.


vi que cuando consultar la siguiente consulta, recibo el plan de consulta en XML.

Dentro del código plan de XML, hay una parte "EstimateRows" con un número que se correlaciona con el número de filas de estimación de la consulta.

Estoy pensando en la opción de la columna SUBSTR query_plan es posible recuperar sólo la información anterior (a menos que lo encontraría en algunos sistemas vistas / tablas).

¿Dónde puedo encontrar el número real de filas de la consulta? Donde se almacena?

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;
¿Fue útil?

Solución

No hay un equivalente directo en especial para rowcounts Por lo que yo sé. Los DMV pertinentes seguimiento de costos IO que se utiliza para mostrar que faltan en un índice, más caro consultas, etc.

Esto le dará Estadisticas por instrucción SQL para las sesiones actuales. Tu caso es distinto:. Acabo de poner juntos en base a guiones que andan dando vueltas

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

Mis guiones se basan en los enlaces I mencionado aquí

Otros consejos

Puede utilizar la variable de sistema @@ recuento de filas para saber el número de registros afectados por última afirmación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top