2009-01-14 19 views
17

Pregunta simple, pero no he encontrado una buena explicación en google. Al utilizar Establecer estadísticas IO ENCENDIDO, las lecturas lógicas y el recuento de escaneos se proporcionan en la ventana de mensajes de Management Studio. Si tengo:sql statistics io scan count explicación

tblExample, número de exploraciones 5, lecturas lógicas 20

Lo que sí exploración recuento significar?

Respuesta

12

De Libros On Line

Número de exploraciones: Número de exploraciones de índices o de mesa realizados.

lecturas lógicas: Número de páginas leídas de la memoria caché de datos.

lecturas físicas: Número de páginas leídas del disco.

lecturas de lectura anticipada: Número de páginas colocadas en el caché para la consulta.

Ver también aquí: http://technet.microsoft.com/en-us/library/ms184361.aspx

16

En cuanto a lo que es un "recorrido de tabla" significa, lo mejor que pude encontrar es la siguiente:

Número de exploraciones simplemente significa cuántas veces la mesa o se accedió al índice durante la consulta. Puede ser un escaneo completo, escaneo parcial o simplemente una búsqueda.

En otras palabras, número de exploraciones solo por sí mismo es no hay suficiente información para proceder. Necesitas saber exactamente cuáles fueron esos escaneos, por lo que tendrás que mirar el plan de ejecución real para obtener más detalles. ¡En resumen, no es una métrica muy útil en sí misma!

Además:

http://www.eggheadcafe.com/software/aspnet/32171165/set-statistics-io-scan-count-explanation.aspx

Desafortunadamente, Scan Count en estos días no es muy informativo. Hm, bueno, si ve un número como 19223, probablemente se haya accedido a la tabla mediante un bucle anidado muchas veces.

Hubo un momento en que el "número de escaneos" simplemente significaba "tabla de tiempo accedida", pero eso fue hace mucho tiempo, tal vez en SQL 6.5. La única vez que usted podría conseguir un número de exploraciones con la definición de 0 es con una consulta como ...

select * 
from TestA1 
where CompanyID = 1 
and CompanyID = 2 

... donde SQL Server podría ser capaz de concluir que la consulta no devolverá ninguna fila , sin acceder a la mesa.

+4

Usted * puede * obtener un conteo de escaneo de 0 y devolver una fila si está buscando un índice único. p.ej. 'SET STATISTICS IO ON; SELECCIONAR * FROM [maestro]. [Dbo]. [Spt_values] WHERE tipo = 'A' Y número = 1 Y nombre = 'rpc'' Esto está documentado [aquí] (http://blogs.msdn.com/b/ sqlserverfaq/archive/2010/09/14/scan-count-meaning-in-set-statistics-io-output.aspx) –

12

Si desea seguir recogiendo citas de msdn.A continuación, [1] que se repite en [2]:.

  • "lecturas lógicas
    Este valor indica el número total de páginas accesos necesarios para procesar la consulta Cada página se lee de la caché de datos , si era necesario o no llevar esa página del disco al caché para cualquier lectura dada. Este valor siempre es al menos tan grande y generalmente más grande que el valor de las lecturas físicas. La misma página se puede leer muchas veces (como como cuando una consulta se maneja desde un índice), entonces el recuento de lecturas lógicas para una tabla puede ser mayor que el número de páginas en una tabla.

  • Lecturas físicas
    Este valor indica el número de páginas que se leyeron desde el disco; siempre es menor o igual que el valor de las Lecturas lógicas. El valor de la proporción de aciertos de caché del búfer, tal como está representada por el Monitor de rendimiento, se calcula a partir de la lógica Lee y Accesos físicos valores de la siguiente manera:

  • lectura anticipada lee
    El Read Lee Ahead valor indica el número de páginas que se leyeron en el caché utilizando el mecanismo de lectura anticipada mientras se procesaba la consulta. Estas páginas no son necesariamente utilizadas por la consulta. Si finalmente se necesita una página, se cuenta una lectura lógica, pero no una lectura física. Un valor alto significa que el valor de Accesos físicos es probablemente inferior y la proporción de aciertos de caché es probablemente mayor que ... [truncado por vgv8]

  • Número de exploraciones
    el valor de recuento de digitalización Indica el número de veces que se accedió a la tabla correspondiente. Las tablas externas de una combinación de bucle anidado tienen un conteo de escaneo de 1. Para las tablas internas, el recuento de escaneo puede ser el número de veces que se accedió a la mesa a través del ciclo. El número de lecturas lógicas viene determinado por la suma del número de escaneos multiplicado por el número de páginas a las que se accede en cada escaneo. Sin embargo, incluso para uniones anidadas de bucle, el recuento de escaneos para la tabla interna podría aparecer como 1. SQL Server podría copiar las filas necesarias de la tabla interna en una tabla de trabajo en caché y usar esta tabla de trabajo para acceder a las filas de datos reales. Cuando se usa este paso en el plan, a menudo no hay indicios de ello en la salida STATISTICS IO. Debe usar el resultado de TIEMPO ESTADÍSTICO, así como información sobre el plan de procesamiento real utilizado, para determinar el trabajo real involucrado en la ejecución de una consulta. Las uniones Hash y las uniones de fusión generalmente muestran el recuento de escaneo como 1 para ambas tablas involucradas en la unión, pero este tipo de combinaciones puede involucrar sustancialmente más memoria. Puede inspeccionar el valor de memusage en sysprocesses mientras se ejecuta la consulta, pero a diferencia del valor de physical_io, este no es un contador acumulativo y solo es válido para la consulta actualmente en ejecución. Una vez que termina una consulta, no hay manera de ver la cantidad de memoria que utiliza."

[1]
Capítulo 4. Solución de problemas de rendimiento de consultas.Supervisión del rendimiento de consultas
Dentro de Microsoft® SQL Server ™ 2005 : Consulta Ajuste y optimización
por Kalen Delaney


Editorial: Microsoft Press
bar Fecha: 26 Septiembre de 2007
Imprimir ISBN-10 : 0-7356-2196-9
Imprimir ISBN-13: 978-0-7356-2196-1
Páginas: 448

[2]
Supervisión del rendimiento de consultas
Optimización del rendimiento de las consultas
Por Ron Soukup, Kalen Delaney
Capítulo 14 desde el interior de Microsoft SQL Server 7.0, publicado por Microsoft Press
http://technet.microsoft.com/en-us/library/cc917719.aspx#ECAA