Las bases de datos son parte fundamental en la toma de decisiones empresariales por lo que la Gestión de Estadísticas Extendidas en Oracle Database; se puede definir cómo la brújula que orienta esas decisiones, para ello, existe el Cost-Based Optimizer (CBO), permitiendo una elección idónea de planes de ejecución, sin estadísticas precisas, incluso la mejor infraestructura puede verse limitada por decisiones poco óptimas por parte del optimizador.
¿Qué son las estadísticas extendidas?
Son un mecanismo que le permite a Oracle recolectar información detallada y realista sobre los datos, en escenarios puntuales en los que las estadísticas tradicionales no abarcan lo suficiente.
Por ejemplo, mientras las estadísticas convencionales suelen enfocarse en columnas individuales (Cardinalidad, histogramas, mínimos y máximos), las estadísticas extendidas se centran en dos aspectos críticos:
- Relaciones entre columnas: Cuando dos o mas columnas están fuertemente correlacionadas y la independencia por parte del optimizador dirige a estimaciones erróneas.
- Expresiones y transformaciones: Cuando los predicados incluyen funciones como UPPER, LOWER, concatenaciones o transformaciones que modifican la distribución de los datos
En la practica, el optimizador debe predecir cuantas filas cumplen con una condición y el rumbo a tomas si la predicción resulta incorrecta, se puede dar el caso en el cual se elija un plan que aunque en la teoría resulte optimo, en la practica sea ineficiente, por lo cual el propósito de las estadísticas extendidas radica en:
- Una selección adecuada de planes de ejecución
- Reducción de accesos innecesarios a disco o uso incorrecto de índices
- Una mejora de las consultas que involucren múltiples filtrs, joins complejos o funciones con condiciones de búsqueda
Ventajas de las estadísticas extendidas
Las principales ventajas para la Gestión de Estadísticas Extendidas en Oracle Database se pueden enumerar de la siguiente manera:
- Mayor precisión en las estimaciones: Capturan correlaciones y transformaciones que de otro modo pueden resultar imperceptibles
- Optimización de consultas complejas: Benefician especialmente a consultas con condiciones múltiples (WHERE o JOIN) donde los errores de estimación aumentan según el volumen de los datos.
- Aprovechamiento de recursos: Al optimizar con una visión realista de la situación, se minimizan escaneos complejos innecesarios y uso de planes poco adecuados.
- Adaptabilidad y flexibilidad a cargas de trabajo: En entornos en los cuales los usuarios pueden aplicar una gran variedad de filtros (aplicaciones de analíticas o APEX) las estadísticas extendidas permiten al motor adaptarse mejor a estos escenarios diversos, sumado a esto, se puede definir de manera manual las correlaciones o dejar que Oracle sugiera y gestione de forma automática.
Desventajas y limitaciones en la Gestión de Estadísticas Extendidas en Oracle Database
- Mayor costo de mantenimiento: Cada extensión requiere recolección y almacenamiento adicional, si los datos suelen cambiar muy frecuentemente, mantener las estadísticas actualizadas puede ser costoso en tiempo y recursos.
- Riesgos de sobreutilización: Crear demasiadas estadísticas extendidas sin un juicio adecuado puede generar un volumen de información mayor al que requiere el optimizador, aumentan la lentitud en la recolección.
- Dependencia del uso real: si las extensiones creadas no corresponden a patrones de consulta reales, no aportaran beneficios, por lo cual seria una carga innecesario y un consumo de recursos en vano.
- Impacto en ambientes con grandes volúmenes: En bases de datos demasiado extensas puede tener un impacto considerable en los tiempos de las ventanas de mantenimiento.
Con todo esto dicho, se debe tener también claridad en algunas problemáticas y consideraciones que se deben tener en cuenta a la hora de implementar las estadísticas extendidas, una de las principales es la creación automática de columnas virtuales.
Columnas virtuales
Para empezar, las columnas virtuales son aquellas cuyo valor no se almacena de manera física en una tabla, sino que se calcula dinámicamente a partir de expresiones y/o funciones definidas en otras columnas, aunque son útiles para evitar cierta redundancia de datos, puede representar problemas en el área operativa, como escenarios en los cuales las consultas importantes usen estas columnas virtuales como filtro o condición de búsqueda, el optimizador no tomara en cuenta estas estadísticas extendidas sobre las expresiones que se estén usando, por lo cual puede ignorar incluso índices.
Por ultimo pero no menos importante, se tiene la integración de las estadísticas extendidas con aplicativos APEX, aunque esta integración permita el rápido desarrollo de los aplicativos mediante filtros, reportes interactivos y búsquedas dinámicas, entre otras funciones, dejando de lado el lógico consumo de columnas virtuales que esto puede requerir en tiempo real de ejecución, es posible que los aplicativos APEX puedan generar cargas de trabajo que fuercen al optimizador a crear columnas virtuales para resolver las consultas ejecutadas, lo que puede llevar a una inestabilidad en los planes de ejecución e impactos en el rendimiento operativo.
Recuerda que en DBA Experts estamos listos para acompañarte en este nuevo desafío, conoce un poco más de nosotros y elevemos tu nivel competitivo juntos.
