Saltear al contenido principal

Medir la lectura en SQL Server – Parte 2

Cuando analizamos la cantidad de páginas que son leídas en nuestras consultas es de mucha importancia tener un objetivo para el Performance Tuning. Ya vimos en un artículo anterior lo básico que necesitamos para Medir la lectura en SQL Server, ahora veamos más detalles que nos ayuden a explotar esta información.

Algunos datos interesantes

Cuando veas las estadísticas de IO en tus consultas para medir la lectura en SQL Server, verás seguramente muchos más datos de acuerdo a la complejidad de los diseños. Esto puede ser muy divertido de revisar en las consultas gigantescas. Sin embargo, quiero que notes en este ejemplo un dato particular.

lectura-en-sql-server

En este ejemplo ya no tenemos solamente datos de tablas físicas. Y es posible que te hayas preguntado qué significa “Worktable” o “Workfile” y el porqué de la alta cantidad de lectura que tienen estos valores.

¿De dónde vienen?

Son representaciones de todo aquello que sucede en la base de datos tempdb. Vale decir, tiene que ver con los objetos temporales que son requeridos para atender tu consulta.

¿Es malo tener valores altos en Worktable/Workfile?

No necesariamente. Podrían subir también de acuerdo a las diferentes tareas que requieran una lógica de ordenamiento, agrupación, unión entre resultados, intersección y otros.

Tal vez, considerando el trabajo de estas operaciones, no caería mal encontrar un buen índice que apoye con estas tareas. Una alternativa es que en los planes de ejecución veas si existe alguna recomendación, sin embargo no olvides que debes saber Interpretar los Missing Index.

¿Y qué pasa con las tablas temporales?

He visto que en muchos lugares prefieren trabajar en su mayoría con tablas temporales a lo largo de los procedimientos almacenados. No quiero decir que esto sea bueno o malo, pero, es importante que tengas en cuenta que los números que se muestran en las estadísticas también representan trabajo en disco.

Esta preferencia de usar tablas temporales a veces viene de la creencia popular de que estas tablas solo están en memoria. Este mito está explicado en este video.

Si quieres ver un detalle del espacio que ocupan tus objetos temporales, puedes generar un reporte de tablas de la tempdb mientras los objetos estén vivos en su conexión.

Pablo Javier Fernández

www.datoptim.com
I love working on SQL Server Performance Tuning and finding the origin of the problems. Music and SQL Server passionate.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Close search

Carrito

Volver arriba