“SQL
Performance Analyzer” nos permite evaluar el impacto en el rendimiento de
cualquier cambio realizado en un sistema que dé como resultado cambios en los
planes de ejecución y rendimiento de sentencias SQL.
También
nos ayuda a predecir el impacto de los cambios en la carga de trabajo de SQL.
Algunos
ejemplos donde “SQL Peformance Analyzer” puede resultar útil son:
- Ugrade de base de datos
- Cambios de configuración en el sistema operativo, hardware o base de datos
- Cambios en los parámetros de inicio y optimizador de la base de datos
- Cambios en un esquema
- Cambios en las estadísticas del optimizador
Flujo de funcionamiento de SQL Performance Analyzer
“SQL
Performance Analyzer” puede ser ejecutado tanto en un sistema de producción como
en un sistema de test (muy parecido al sistema de producción). No
siempre es recomendado que se utilice en un sistema productivo, ya que se debe
tener en cuenta que cualquier cambio global realizado en el sistema para evaluar
el impacto del rendimiento, también
puede afectar a demás usuarios del sistema. Si el cambio del sistema no afecta
a muchas sesiones o sentencias de SQL, entonces si puede ser aceptable ejecutar
“SQL Performance Analyzer” en un sistema de producción. El uso de un sistema de
prueba o test también asegura que otras cargas de trabajo que se ejecutan en el
sistema de producción, no afecten el análisis realizado por “SQL Performance
Analyzer”.
La
ejecución de “SQL Performance Analyzer” se divide en los siguientes pasos, los
cuales explicaremos posteriormente con mayor detalle:
1) Captura de carga de
trabajo de SQL
La
carga de trabajo SQL se puede capturar mediante el uso de un “SQL Tuning Set” (STS). El STS consta de sentencias de SQL junto con
sus estadísticas y contexto de ejecución. El “SQL
Tuning Set” captura la carga de trabajo SQL en el sistema de
producción. Luego de ser capturado, puede ser transferido a otro sistema en el
cual finalmente se realizará el análisis de rendimiento SQL.
2) Creación de una tarea
de SQL Performance Analyzer
Después
de crear un “SQL Tuning Set” (STS),
debemos crear una tarea de “SQL
Performance Analyzer Task”.
3) Ejecución de una tarea
de SQL Analysis
Una
tarea de “SQL Analyze” es un
contenedor que encapsula todos los datos para un análisis completo por parte de
“SQL Performance Analyzer”. Se compone de al menos dos pruebas SQL y una
comparación.
3.1) Prueba de
rendimiento de SQL previa al cambio
Una prueba SQL captura la performance de
ejecución de un SQL tuning set
bajo condiciones de entorno específicas. La prueba previa al cambio se puede
ejecutar desde el sistema de test al sistema de producción mediante un dblink.
Alternativamente, se puede obtener sólo el plan de ejecución de la base de
producción utilizando dblink. Una tercera opción es convertir la información
proporcionada en el “SQL Tuning Set”
en datos de rendimiento.
3.2) Prueba de
rendimiento de SQL posterior al cambio
La prueba posterior al cambio se suele ejecutar
en el sistema de test después de que se hayan realizado los cambios necesarios
en el sistema, para que de esta manera podamos tener 2 sets de pruebas que
contengan datos para poder comparar.
3.3) Comparación
delas pruebas SQL
Después de realizar los cambios previos y
posteriores, la información de rendimiento recopilada puede ser comparada
ejecutando un análisis de comparación.
4) Generación de un informe
Finalmente
obtenemos el informe de “SQL
Performance Analyzer” el cual contiene información sobre los dos set de
pruebas utilizados en la tarea de análisis (“Analysis Task”) y la comparación
de métricas de rendimiento según las
opciones específicas que hayamos elegido. A continuación, podemos analizar el impacto
del cambio y realizar correcciones en el sistema para continuar con más
pruebas, o bien ajustar consultas específicas que pueden llegar a haber tenido
una regresión en su plan de ejecución.
Referencias: Note 1577290.1
No hay comentarios:
Publicar un comentario