Opciones de ejecución de consultas SQL más inteligentes

septiembre 24

Líneas de código naranja y azul

RDM SQL utiliza un método basado en el costo para optimizar una consulta en el que el optimizador de consultas analiza la información de uso de datos para determinar la forma más rápida de ejecutar una consulta. En RDM 11, la información disponible para SQL se limitaba al número de filas en las tablas referenciadas más cualquier información adicional proporcionada por el usuario a través de los valores distintos opcionales y las cláusulas de declaración de columna de rango utilizadas en la declaración de creación de tabla.

Para consultas básicas, esto no causa ningún problema porque esas opciones de opciones de ejecución son simples. Pero para consultas más complejas que implican recuperar datos de varias tablas que satisfacen un dónde cláusula compuesta de múltiples expresiones condicionales, esas limitaciones podrían resultar en una notable penalización de rendimiento.

Se ha realizado una mejora significativa en RDM 12.0 en la capacidad de SQL para tomar buenas decisiones de planes de ejecución que producirán consultas que se ejecutarán más rápido. Una nueva declaración, actualizar estadísticas (estadisticas), ahora se puede ejecutar en una base de datos poblada que recopilará estadísticas de distribución de datos para cada columna de cada tabla en la base de datos. Luego, el optimizador de SQL utilizará estos datos para predecir mejor los costos de acceso asociados con cada método posible disponible para acceder a las filas de cada tabla a la que se hace referencia en la consulta.

El usuario controla la cantidad de datos que se muestrearán y la extensión de los datos de distribución que se almacenarán a través de cláusulas opcionales en el actualizar estadísticas declaración. Cuanto más grande sea la base de datos, más tardará actualizar estadísticas para recopilar los datos de distribución. Esto se mitiga ya que el usuario puede controlar la cantidad de datos leídos especificando un porcentaje de la base de datos a muestrear. Además, la recopilación de datos es multiproceso con el número de subprocesos utilizados especificado por un actualizar estadísticas cláusula o, de forma predeterminada, establecido en el número de CPU centrales en la computadora.

También se proporciona la capacidad de especificar una condición que hará que el sistema se ejecute automáticamente actualizar estadisticas en función de cuánto ha cambiado la base de datos desde la última ejecución. Por lo tanto, es posible que solo tenga que ejecutar manualmente actualizar estadísticas una vez y el sistema controlará automáticamente las ejecuciones adicionales en función de los parámetros de cambio que especificó en esa primera ejecución.

Los procedimientos almacenados pueden contener uno o más Seleccione declaraciones que fueron compiladas y optimizadas utilizando las estadísticas que estaban disponibles en el momento en que crear procedimiento Fue ejecutado. Los procedimientos almacenados permiten el uso de sentencias SQL precompiladas para que no sea necesario incurrir en el costo de compilación en el momento de la ejecución de la aplicación. RDM 12 SQL ha agregado el compilación automática cláusula a la crear procedimiento declaración que hará que SQL recompile automáticamente el procedimiento almacenado en el caso de que un actualizar estadísticas se ha ejecutado desde la última vez que se ejecutó el procedimiento. Por supuesto, esto agregará el costo de recompilación al tiempo de ejecución para esa ejecución en particular, pero en muchos casos, todas las ejecuciones posteriores serán más rápidas debido a los cambios en las estadísticas de distribución de datos y al efecto positivo que tiene en el plan de ejecución del optimizador. elección.

Las estadísticas recopiladas se almacenan en un archivo llamado dbname.sts en el mismo directorio en el TFS que los archivos de base de datos y el archivo de catálogo (dbname.gato).

Se proporcionan cuatro nuevos archivos de catálogo del sistema que se pueden consultar para ver las estadísticas recopiladas. Por ejemplo, la tabla sys$dbstats contiene una fila para cada base de datos abierta en la que actualizar estadísticas ha sido ejecutado. La información de la tabla incluye un número de versión del archivo de estadísticas, la fecha en que actualizar estadísticas fue la última vez que se ejecutó, el tiempo de ejecución para el actualizar estadísticas, el número total de filas almacenadas en la base de datos, junto con los valores de cada uno de los actualizar estadísticas Parámetros de control. Otras tablas incluyen sys$tabstats, sys$colstats y sys$colhisto. Esta última tabla contiene las estadísticas de distribución recopiladas para cada columna de la base de datos. El uso de esta información junto con la comprensión de cómo funciona el optimizador como se describe en "Cómo se procesan las consultas mediante RDM SQL”Puede ayudarlo a analizar consultas SQL particulares.

Con la disponibilidad de estadísticas de distribución de datos en RDM 12 SQL, los beneficios completos de la optimización sofisticada de consultas basada en costos se pueden obtener en las aplicaciones RDM 12 SQL.

Get notified about new RDM updates

Be the first to know about new Raima Database Manager updates when they go live, use cases, industry trends and more.