miércoles, 26 de agosto de 2015

Las estadísticas y el optimizador de consultas

Una de las características más comunes e importantes de los gestores de bases de datos es el optimizador de consultas. Éste utiliza diversos cálculos y estadísticas almacenadas dentro del catálogo de la base de datos para utilizarlos cuando se ejecuta una instrucción de SQL.

El optimizador de consultas determina por medio de estas estadísticas cuál es la acción que debe tomarse para asegurar que la consulta se ejecute de manera eficiente. Entre las variables que los optimizadores toman en cuenta para determinar manera de ejecución están la distribución y frecuencia de los datos (normalmente conocida como histogramas), páginas utilizadas por los datos, distribución y cardinalidad de los índices.

Todas estas variables conjuntamente con la cantidad de memoria disponible así como la disponibilidad del procesador juegan un papel crucial al ejecutar una consulta ya que basado en todas estas condiciones el optimizador tomará el camino más adecuado para acceder a los datos almacenados.

En SQL Server es posible consultar el catálogo de base datos para saber si las estadísticas están habilitadas con el siguiente comando:

USE MASTER;

SELECT NAME , IS_AUTO_CREATE_STATS_ON FROM SYS.DATABASES;

En condiciones normales, la variable IS_AUTO_CREATE_STATS_ON debe valer 1 para indicar que estas estadísticas están habilitadas.

En caso de no estar habilitadas las estadísticas para una base de datos, puede usarse el siguiente comando:

ALTER DATABASE [NOMBRE_DE_LA_BD] SET AUTO_UPDATE_STATISTICS OFF/ON;

Lo que desactivará o activará las estadísticas que usará el optimizador.

Debe tener permisos de administrador en la base de datos para poder ejecutar estos comandos.

No hay comentarios: