Colección de citas famosas - Frases motivadoras - ¿Cuáles son las medidas para optimizar el rendimiento de la base de datos?

¿Cuáles son las medidas para optimizar el rendimiento de la base de datos?

1. Ajustar el diseño de la estructura de datos

Esta parte se completa antes de desarrollar el sistema de información. Los programadores deben considerar si utilizar la función de partición de la base de datos ORACLE y si crear índices para las tablas de la base de datos a las que se accede con frecuencia.

2. Ajustar el diseño de la estructura de la aplicación

Esta parte también se completa antes del desarrollo del sistema de información. Los programadores deben considerar qué tipo de arquitectura utiliza la aplicación, ya sea una arquitectura tradicional de dos niveles cliente/servidor o una arquitectura de tres niveles de navegador/Web/base de datos. Las diferentes arquitecturas de aplicaciones requieren diferentes recursos de base de datos.

3. Ajustar las declaraciones SQL de la base de datos

La ejecución de la aplicación se atribuirá en última instancia a la ejecución de las declaraciones SQL en la base de datos, por lo que la eficiencia de ejecución de las declaraciones SQL determina en última instancia el rendimiento. de la base de datos ORACLE. ORACLE recomienda utilizar el optimizador de declaraciones y el administrador de nivel de fila de ORACLE para ajustar y optimizar las declaraciones SQL.

4. Ajustar la asignación de memoria del servidor

Para optimizar la asignación de memoria durante la operación del sistema de información, el administrador de la base de datos puede ajustar los datos en el área global del sistema de base de datos (área SGA) de acuerdo con al funcionamiento de la base de datos, el búfer de registro y los tamaños de grupo compartido. También puede ajustar el tamaño del área global del programa (área PGA). Cabe señalar que cuanto mayor sea el área SGA, mejor. Si el área SGA es demasiado grande, ocupará la memoria utilizada por el sistema operativo y provocará el intercambio de páginas de la memoria virtual, lo que ralentizará el sistema.

5. Ajustar la E/S del disco duro

Este paso se completa antes del desarrollo del sistema de información. Los administradores de bases de datos pueden colocar archivos de datos que componen el mismo espacio de tabla en diferentes discos duros para lograr el equilibrio de carga de E/S entre los discos duros.

6. Ajustar los parámetros del sistema operativo

Por ejemplo, la base de datos ORACLE que se ejecuta en el sistema operativo UNIX puede ajustar el tamaño del grupo de búfer de datos de UNIX y el tamaño de la memoria que puede tener cada proceso. usar.

De hecho, las medidas de optimización de la base de datos anteriores están relacionadas entre sí. El deterioro del rendimiento de la base de datos ORACLE se debe básicamente a un tiempo de respuesta prolongado del usuario, lo que requiere que los usuarios esperen mucho tiempo. Sin embargo, existen varias razones para el deterioro del rendimiento y, a veces, múltiples factores * * * pueden causar el deterioro del rendimiento, lo que requiere que los administradores de bases de datos tengan conocimientos informáticos completos y sean sensibles a las principales causas que afectan el rendimiento de la base de datos. Además, una buena herramienta de gestión de bases de datos también es muy importante para optimizar el rendimiento de la base de datos.

En primer lugar, las herramientas de optimización del rendimiento de la base de datos ORACLE

Las herramientas de optimización del rendimiento de la base de datos más utilizadas son:

Diccionario de datos en línea de la base de datos ORACLE, el diccionario de datos en línea ORACLE puede reflejar Operaciones dinámicas de ORACLE, que son muy útiles para ajustar el rendimiento de la base de datos.

Las herramientas del sistema operativo (como vmstat e iostat para sistemas operativos UNIX) pueden verificar la memoria a nivel del sistema y el uso de E/S del disco duro. En ocasiones, estas herramientas resultan muy útiles para que los administradores descubran dónde se producen los cuellos de botella del sistema.

SQLTRACEFACILITY puede registrar la ejecución de sentencias SQL. Los administradores pueden usar tablas virtuales para ajustar instancias y usar archivos de seguimiento de sentencias SQL para ajustar el rendimiento de la aplicación. La herramienta de seguimiento del lenguaje SQL genera los resultados en un archivo del sistema operativo, que los administradores pueden ver utilizando la herramienta TKPROF.

ORACLE Enterprise Manager (OEM) es una interfaz gráfica de administración de usuarios que permite a los usuarios administrar bases de datos cómodamente sin tener que recordar comandos complejos de administración de bases de datos ORACLE.

EXPLAINPLAN: comando de optimización del lenguaje SQL, que puede ayudar a los programadores a escribir un lenguaje SQL eficiente.

2. Evaluación del rendimiento del sistema de la base de datos ORACLE

Los diferentes tipos de sistemas de información requieren diferentes parámetros de base de datos. Los administradores de bases de datos deben prestar atención a los diferentes parámetros de la base de datos según su tipo de sistema de información.

1. Sistema de información de procesamiento de transacciones en línea (OLTP). Este tipo de sistema de información generalmente requiere una gran cantidad de operaciones de inserción y actualización. Los sistemas típicos incluyen sistemas de emisión de billetes de aviación civil, sistemas de ahorro bancario, etc. Los sistemas OLTP deben garantizar la concurrencia, confiabilidad y velocidad de los usuarios finales de la base de datos. La base de datos ORACLE utilizada en dichos sistemas debe considerar principalmente los siguientes parámetros:

¿Es suficiente el segmento de reversión de la base de datos?

¿Necesita indexación, agregación y hash en una base de datos ORACLE?

¿Es el área global del sistema (SGA) lo suficientemente grande?

¿Son eficientes las sentencias SQL?

2. Sistema de almacenamiento de datos. La tarea principal de este sistema de información es consultar los datos masivos de ORACLE y obtener algunos patrones entre los datos. Los administradores de bases de datos deben prestar atención a los siguientes parámetros de este tipo de base de datos ORACLE:

¿Índice B* o índice de mapa de bits?

¿Deberían utilizarse consultas SQL paralelas para mejorar la eficiencia de las consultas?

¿Utilizas funciones PL/SQL para escribir procedimientos almacenados?

Si es necesario, es necesario establecer una base de datos paralela para mejorar la eficiencia de las consultas de la base de datos.

3. Principios de ajuste de declaraciones SQL

El lenguaje SQL es un Lenguaje flexible, la misma función se puede lograr a través de diferentes declaraciones, pero la eficiencia de ejecución de las declaraciones es muy diferente. Los programadores pueden utilizar la declaración EXPLAINPLAN para comparar varias opciones de implementación y elegir la mejor. En términos generales, los programadores deben cumplir las siguientes reglas al escribir declaraciones SQL:

1. Intente comparar las siguientes dos sentencias SQL:

Declaración a: seleccione dname, deptnofromdeptweedeptnonotin

(SELECTdeptnoFROMemp);

Declaración b: seleccione dname, deptnofromtdeptwetherenotexists

(selectdeptnofromempwhere dept. dept no = EMP. dept no);

Los resultados de estas dos declaraciones de consulta son los mismos, pero cuando se ejecuta la declaración A, ORACLE escaneará toda la tabla emp, y No se utiliza el índice deptno creado en la tabla emp. Al ejecutar la declaración B, debido a que se usa una consulta de unión en la subconsulta, ORACLE solo escanea parte de los datos en la tabla emp y usa el índice de la columna deptno, por lo que la declaración B es más eficiente que la declaración a.

2. Seleccione el orden conjunto de la consulta conjunta. Considere el siguiente ejemplo:

Seleccione contenido de Taba, tabbb, tabcc

aro y ahai

y b.bcolbetween:blowand:bhigh

p >

Entre clowand: chigh

ANDa.key1=b.key1

amda clave 2 = c clave 2;

En este ejemplo de SQL. , el programador primero debe seleccionar la tabla principal para consultar, porque la tabla principal necesita escanear los datos de toda la tabla, por lo que la tabla principal debe tener los datos más pequeños, por lo que el rango de la columna acol de la tabla A en el ejemplo debe ser más pequeño que la tabla. El rango de las columnas correspondientes de B y la tabla c.

3. Utilice declaraciones IN o NOTIN con cuidado en las subconsultas. El efecto de usar donde (NO) existe es mucho mejor.

4. Utilice consultas conjuntas de vistas con precaución, especialmente consultas conjuntas entre vistas más complejas. En términos generales, es mejor dividir las consultas de vistas en consultas directas en la tabla de datos.

5. El parámetro SHARED_POOL_RESERVED_SIZE se puede configurar en el archivo de parámetros. Este parámetro reserva espacio de memoria contiguo en el grupo compartido SGA***, lo que resulta beneficioso para almacenar paquetes SQL de gran tamaño.

6. El programa DBMS_SHARED_POOL proporcionado por ORACLE puede ayudar a los programadores a "arreglar" algunos procedimientos almacenados de uso común en el área SQL sin que se les agote la memoria. Esto facilita a los programadores "arreglar" los procedimientos almacenados de uso frecuente y ocupar grandes cantidades de memoria en la memoria para mejorar el tiempo de respuesta del usuario final.

Cuarto, ajuste de los parámetros de la CPU

La CPU es un recurso importante del servidor. Una buena condición de funcionamiento del servidor es que la tasa de utilización de la CPU sea superior a 90 durante las horas pico de trabajo. Si la utilización de la CPU es superior a 90 cuando está inactivo, significa que el servidor carece de recursos de CPU. Si la utilización de la CPU sigue siendo baja durante los picos de trabajo, significa que los recursos de la CPU del servidor todavía son relativamente excesivos.

Utilice el mismo comando para ver el uso de la CPU. Para servidores que usan el sistema operativo UNIX, puede usar el comando sar_u para verificar el uso de la CPU; para servidores que usan el sistema operativo NT, puede usar NT Performance Manager para verificar el uso de la CPU.

El administrador de la base de datos puede comprender el tiempo de CPU utilizado por la base de datos ORACLE viendo el elemento estadístico "CPUusedbythissession" en el diccionario de datos v$sysstat y viendo el elemento estadístico "OSUserlevelCPUtime" para comprender el sistema operativo. Tiempo de CPU en modo usuario. Verifique las estadísticas de "OSSystemcallCPUtime" para comprender el tiempo de CPU en el modo de sistema del sistema operativo. El tiempo total de CPU para un sistema operativo es la suma del tiempo en modo de usuario y en modo de sistema. Si el tiempo de CPU utilizado por la base de datos ORACLE representa más del 90% del tiempo total de CPU del sistema operativo, significa que la base de datos ORACLE utiliza básicamente la CPU del servidor, lo cual es razonable. Por el contrario, significa que la CPU del servidor está ocupada por otros programas y la base de datos ORACLE no puede obtener más tiempo de CPU.

El administrador de la base de datos también puede ver el diccionario de datos v$sesstat para obtener el tiempo de CPU ocupado por cada sesión actualmente conectada a la base de datos ORACLE, para saber qué sesión consume más CPU del servidor.

Hay muchas situaciones en las que los recursos de la CPU son insuficientes: la repetición de sentencias SQL, sentencias SQL ineficientes y conflictos de bloqueo conducirán a recursos de CPU insuficientes.

1. El administrador de la base de datos puede ejecutar la siguiente declaración para verificar el análisis de la declaración SQL:

SELECT * FROMV $ SYSSTATWHERENAMEIN

(parsetimecpu, parsetimeelapsed, 'parse count (hard)');

Aquí, parsetimemecpu es el tiempo de servicio del sistema, parsetimelapped es el tiempo de respuesta, tiempo de espera del usuario, tiempo de espera = parsetimelapped_parsetimemecpu.

De esto podemos obtener el tiempo de espera de análisis promedio de la declaración SQL del usuario = tiempo de espera/recuento de análisis. Este tiempo de espera promedio debería ser cercano a 0. Si el tiempo de espera promedio del análisis es demasiado largo, el administrador de la base de datos puede utilizar la siguiente declaración.

SELECTSQL_TEXT, PARSE_CALLS, EXECUTIONSFROMV$SQLAREA

ORDERBYPARSE_CALLS

Descubra qué sentencias SQL tienen una baja eficiencia de análisis. Los programadores pueden optimizar estas declaraciones o aumentar el valor del parámetro ORACLE SESSION_CACHED_CURSORS.

2. El administrador de la base de datos también puede utilizar las siguientes declaraciones:

SELECTBUFFER_GETS, EXECUTIONS, SQL_TEXTFROMV$SQLAREA

Ver declaraciones SQL ineficientes y optimizar estas declaraciones también lo hará ayudar a mejorar la utilización de la CPU.

3. El administrador de la base de datos puede verificar los conflictos de la base de datos ORACLE a través del elemento estadístico "latchfree" en el diccionario de datos v$system_event. Si no hay conflictos, latchfree no encontrará resultados. Si el conflicto es demasiado grande, el administrador de la base de datos puede reducir el valor del parámetro spin_count para eliminar la utilización elevada de la CPU.

Ajuste verbal (abreviatura de verbo) de los parámetros de la memoria

El ajuste de los parámetros de la memoria se refiere principalmente al ajuste del Área global del sistema (SGA) de la base de datos ORACLE. SGA consta principalmente de tres partes: * *Grupo compartido, búfer de datos y búfer de registro.

1 y * * *El grupo compartido consta de dos partes: * *Área SQL compartida y búfer del diccionario de datos, * *El área SQL compartida es el área donde se almacenan los comandos SQL de los usuarios y el búfer del diccionario de datos. almacena información dinámica operativa de la base de datos. El administrador de la base de datos ejecuta la siguiente instrucción:

select(sum(pins-reloads))/sum(pins)"lib cache"from v$library cache;

Check * * * Uso del área SQL. Esta utilización debe ser superior a 90; de lo contrario, será necesario aumentar el tamaño del grupo compartido. El administrador de la base de datos también puede ejecutar la siguiente declaración:

select (sum (gets-get misses-usage-fixed) /sum (gets) "row cache" from v $ row cache;

Verifique la utilización del búfer del diccionario de datos, que también debe ser superior a 90; de lo contrario, * * * es necesario aumentar el tamaño del grupo compartido

2. /p> p>

SELECTname, valueFROMv $sysstatWHEREnameIN('dbblockgets', consistentegets, 'physical reads');

Compruebe el uso del búfer de datos de la base de datos y los resultados de la consulta se pueden utilizar para calcular la tasa de aciertos del búfer de datos = 1-(número de lecturas físicas/(número de adquisiciones consistentes de dbblockets).

Esta tasa de aciertos debe ser superior a 90; de lo contrario, el tamaño del búfer de datos debe ser mayor. aumentarse.

3. Búfer de registro El administrador de la base de datos puede ejecutar la siguiente instrucción:

selectname, valuefromv $sysstatwherenamein('redo schools', 'redlogspacerequests'); >

Verifique el uso del búfer de registro. Los resultados se pueden usar para calcular la tasa de falla de la aplicación del búfer de registro:

Tasa de falla de la aplicación = número de solicitudes/entradas, la tasa de falla de la aplicación debe ser cercana. a 0; de lo contrario, significa que el búfer de registro es demasiado pequeño y debe agregarse a la base de datos ORACLE.

El curso de capacitación de Java Kunming Beida Jade Bird se reproduce de Internet. , por favor contáctenos.