[ 2018-01-26 ]

Introducción a "SQL Performance Analyzer" (Parte I)

 “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