Colección de citas famosas - Slogan de motivación - Cómo los administradores de bases de datos descubren el quid de la baja tasa de aciertos de las consultas de datos de Oracle

Cómo los administradores de bases de datos descubren el quid de la baja tasa de aciertos de las consultas de datos de Oracle

Hay cuatro factores que afectan la tasa de aciertos: la actividad de la tabla del diccionario, la actividad del segmento temporal, la actividad del segmento de reversión y el escaneo de la tabla se pueden utilizar para analizar estos cuatro factores y descubrir las razones del bajo. Tasa de aciertos de la base de datos. 1) Actividad de la tabla de diccionario Cuando una declaración SQL llega al kernel de Oracle por primera vez, la base de datos analiza la declaración SQL y los objetos del diccionario de datos contenidos en la consulta se descomponen para generar la ruta de ejecución de SQL. Si la declaración SQL apunta a un objeto, tabla o vista que no está en el SGA, Oracle ejecuta la declaración SQL para consultar la información sobre el objeto en el diccionario de datos. Los bloques de datos se leen de la tabla del diccionario de datos en la memoria caché de datos del SGA. Dado que cada diccionario de datos es pequeño, podemos almacenar en caché estas tablas para mejorar la tasa de aciertos de estas tablas. Sin embargo, dado que los bloques de datos de la tabla del diccionario de datos ocupan espacio en el SGA, al aumentar la tasa de aciertos general, reducirán el espacio disponible de los bloques de datos de la tabla, por lo que si la información del diccionario de tiempo requerida para la consulta ya está en el Caché SGA, entonces no hay llamadas recursivas, son necesarias. 2) Actividad en el segmento temporal Cuando el usuario ejecuta una consulta que requiere clasificación, Oracle intenta ordenar todas las filas en el área de clasificación en la memoria. El tamaño del área de clasificación está determinado por la cantidad de archivos init.ora en la base de datos. . Si el área de clasificación no es lo suficientemente grande, la base de datos asignará segmentos temporales durante la operación de clasificación. Los segmentos temporales reducirán artificialmente la tasa de aciertos de la aplicación OLTP (procesamiento de transacciones en línea) y también reducirán el rendimiento de la clasificación de consultas. Si toda la operación de clasificación se puede realizar en la memoria, se puede eliminar la sobrecarga de escribir datos en el segmento temporal. Por lo tanto, SORT_AREA_SIZE debe establecerse lo suficientemente grande como para evitar la necesidad de segmentos temporales. El método de ajuste específico para este parámetro es consultar datos relevantes para determinar el ajuste de este parámetro. seleccione * de v$sysstat donde name='sorts(disk)'or name='sorts(memory); la mayor parte de la clasificación se realiza en la memoria, pero una pequeña parte ocurre en el segmento temporal. Verifique init El valor SORT_AREA_SIZE del archivo .ora, el parámetro es: SORT_AREA_SIZE=65536; ajústelo a SORT_AREA_SIZE=131072 Después de ajustar este valor, reinicie la base de datos ORACLE para que surta efecto. 3) Actividades del segmento de reversión Las actividades del segmento de reversión se dividen en actividades de reversión y actividades de encabezado del segmento de reversión. El acceso al bloque de encabezado del segmento de reversión reducirá la tasa de aciertos de la aplicación y tiene el mayor impacto en la tasa de aciertos del sistema OLTP. Para confirmar si la tasa de aciertos se ve afectada por el segmento de reversión, puede ver los valores estadísticos de la "Aplicación de registro de lectura y reescritura de compatibilidad de bloques de datos" en el informe de salida de monitoreo. Estos valores estadísticos se utilizan para. determinar si los usuarios acceden desde el segmento de reversión. El número de apariciones de datos. 4) Escaneo de tabla Los bloques leídos mediante escaneos grandes no permanecerán en la caché de bloques de datos durante mucho tiempo, por lo que los escaneos de tabla reducirán la tasa de aciertos. Para evitar escaneos completos innecesarios de la tabla, el primer paso es crear índices según sea necesario. El diseño de índices razonables requiere el análisis y la predicción de varias consultas. El autor hablará sobre esto en detalle en la optimización de SQL; utilizado La tabla se coloca en la memoria para reducir la cantidad de lecturas y escrituras del disco.