top of page

13.1. ESTADÍSTICAS DEL OPTIMIZADOR

Captura (1).jpg

   Detalle:

   Fichero Apuntes........

APUNTES.xlsm

Oracle dispone de un componente llamado optimizador, que se usa para optimizar las operaciones SQL.


Las sentencias SQL se pueden realizar de diferentes formas provocando una efectividad diferente, para optimizar esta ejecución el optimizador recoge estadísticas del Diccionario de Datos y con esta información diseña el plan de ejecución más eficiente.



1. OPTIMIZADOR.

Como cada sentencia SQL puede ejecutarse de distintas formas, por ejemplo, siguiendo distinto orden al realizar los joins. La elección del plan a ejecutar es crítica para el rendimiento del sistema y en Oracle este plan es realizado por el optimizador.


La eficacia del plan a ejecutar depende directamente de lo actualizado que este la información de las estadísticas de la base de datos. Teniendo en cuenta que las estadísticas no se ofrecen en tiempo real sino en determinados momentos, pero también se puede forzar su actualización.


Las estadísticas se pueden forzar de 2 formas:


Con el comando ANALYZE.

  • ANALYZE [TABLE | INDEX] nombre [COMPUTE | ESTIMATE | DELETE] STATISTICS opciones


Con procedimientos del paquete DBMS_STATS.

  • GATHER_DATABASE_STATS():Recolecta estadísticas de todos los objetos de la BD.

  • GATHER_DICTIONARY_STATS():Recolecta estadísticas de esquemas SYS/SYSTEM y de componentes de RDBMS.

  • GATHER_INDEX_STATS():Recolecta estadísticas de índices.

  • GATHER_SCHEMA_STATS():Recolecta estadísticas de esquemas.

  • GATHER_TABLE_STATS():Genera estadísticas de tablas (e índices) y columnas.



2. ESTADISTICAS DE OBJETO.

Las vistas que nos proporciona información sobre las estadísticas son:

  • DBA_TABLES.

  • DBA_TAB_COLUMNS.

  • DBA_INDEXES.


El análisis de una tabla junta la estadística a la tabla.

Las estadísticas son visibles en la vista DBA_TABLESque proporciona información tal como:

  • Nº de filas en la tabla.

  • Nº de bloques asignados a la tabla.

  • Cantidad de espacio libre en bloques en uso.

  • Media de longitud en cada registro.

  • Nº de registros “encadenados”.


Aparte de la estadística en cuanto a la tabla en su conjunto, cada columna de la tabla también es analizada. Las estadísticas de columna son visibles en la vista de DBA_TAB_COLUMNS, que proporciona información tal como:

  • Nº de valores distintos.

  • Valor máximo y mínimo.

  • Nº de valores a NULL.

  • Media de longitud de la columna.


Cuando una tabla es analizada, sus índices también son examinados. La estadística de los índices son mostrados en la vista DBA_INDEXES, que proporciona información tal como:

  • Profundidad del árbol índice.

  • Nº de valores clave distintos.

  • Factor de agrupación en cluster.


Estas estadísticas son almacenadas dentro del diccionario de datos y dan al optimizador la información que necesita para tomar decisiones vitales sobre como ejecutar la sentencia de la mejor forma.


También es posible juntar la estadística a índices explícitamente. Estas estadísticas (adicional a aquellos untados junto con las estadísticas de tabla) son mostrados en la vista INDEX_STAT y proporciona información tal como:

Oracle dispone de un componente llamado optimizador, que se usa para optimizar las operaciones SQL ...

< Temario
¿Hay algún Error o Mejora?

CARGANDO

linea2.jpg
bottom of page