• Saltar a la navegación principal
  • Saltar al contenido principal

DBA dixit

Recursos para el administrador y el desarrollador de bases de datos

  • Lo básico
  • SQL
  • Administración
  • Herramientas
  • Buenas prácticas
  • Performance & Tuning
Usted está aquí: Inicio / SQL / Tipos de lectura en un plan de ejecución

Tipos de lectura en un plan de ejecución

Comprendiendo un plan de ejecución: tipos de lectura de datos

Cuando se realiza una lectura de datos sobre una base de datos, el motor de bases de datos determina el mejor plan de ejecución (el mejor camino para ejecutar la consulta) y esta lectura puede ser de varios tipos dependiendo de la estructura de la tabla, índices, estadísticas y la cantidad de datos esperados. Existen al menos tres que son las más importantes:

  1. Table scan.
  2. Index scan.
  3. Index seek.

Cada una de estas lecturas es diferentes, aunque el resultado final sea el mismo; algunas ocupan más recursos, algunas ocupan índices, etc. Para saber cuál tipo de lectura se ejecuta se puede leer el plan de ejecución y comprender entonces por qué una consulta es lenta, o simplemente para tratar de hacerla más eficiente.

Table scan

Es el método de lectura más sencillo ya que realiza una lectura de toda la tabla para encontrar y extraer lo que se está buscando. Se realiza principalmente bajo las siguientes condiciones

  • La consulta no puede hacer uso de algún índice, por que no hay alguno que le sea útil.
  • Se requieren muchos campos de la tabla (puede ser por un SELECT * FROM…).
  • Se extraerá la mayoría de los registros de las tablas.

De las formas de lectura de datos esta es la más costosa (en tiempo y recursos) ya que, para obtener lo solictado, se debe hacer un barrido secuencial de todos y cada uno de los registros, sin embargo, en ocasiones es la única manera de obtener el resultado, o bien, el uso de las otras dos técnias resulta más costosa por que son búsquedas en tablas demasiado pequeñas para sacar ventaja del uso de índices.

Ejemplo de Table Scan en un plan de ejecución

Index scan

En este método, la lectura se hace primero sobre un índice, no sobre la tabla, para obtener los registros que se requieren, es decir, ya se aprovecha un índice pero se hace una lectura secuencial sobre el índice. Esta técnica es más rápida que la primera (y por lo tanto es más rápida y ocupa menos recursos)

Ejemplo de Index Scan

Index seek

De los tres métodos de lectura de datos, el Index seek es el más eficiente y rápido, ya que aprovecha un índice dentro de la tabla para «saltar» a los registros que requiere. Es muy eficiente cuando el query busca pocos registros y se pueden ubicar estos registros con un índice. Si el motor de base de datos determina que no es útil utilizar este tipo de lectura (por que regresaría muchos registros por ejemplo) utilizará otro método, aunque exista un índice que nos parezca idóneo para el query.

Ejemplo de Index seek

Publicado en: Buenas prácticas, SQL Etiquetado como: plan de ejecución, SQL Server

  • Lo básico
  • SQL
  • Administración
  • Herramientas
  • Buenas prácticas
  • Performance & Tuning

Copyright © 2025 · Wellness Pro on Genesis Framework · WordPress · Acceder