Analyzing SQL with SQL Tuning Advisor on Cloud Control 12c

Buenas Tardes Amigos, esta semana estuvimos realizando tareas de peformance en algunos customers puntuales.

Me sentí alegre, al poder recordar varias buenas practicas de Oracle con las cuales ya venimos operando con los consultores que están en mi equipo.

Problemática

  • Nos encontramos con aplicaciones que esta semana introdujeron un ciclo de cambios en producción mediante diferentes deploys.
  • Algunos querys pasaron de tiempos medidos en , mili segundos, segundos a minutos.
  • algunas aplicaciones dejaron de responder a tareas puntuales por medio time out.

Plan de acción

Como plan de acción (que ampliare en varios artículos de esta semana) decidimos hacer unas serie de tareas de monitoreo y con ello, proponer mejoras.

En el articulo de hoy, utilizaremos la herramienta Cloud Control, pero también comenzaremos a realizar las tareas por linea de comandos con el uso de los scripts sqltrpt.sql que nos servirá en caso de estar en un Customer , en donde no tengamos acceso a dicha herramienta o no esta instalado.

Cloud Control

En Cloud control , con el nombre de nuestra instancia de base de datos que fue seleccionada para ser analizada, usamos el siguiente proceso:

Performance >> Top Activity

En el browser podemos observar un escenario parecido a este:

ORA-38171: Insufficient privileges for SQL management object operation

Cuando trabajamos en tareas de performance, es util poder ejecutar desde la linea de comandos (Con analisis previo) las recomendaciones propuestas por:

  • SQLPrt (linea de comandos, recomendaciones propuestas.)
  • SQL TUNNING SET.

Dichas recomendaciones pueden mostrarnos:

  • Cambio de Plan de Ejeuccion.
  • Reescritura de querys.
  • Creacion de Indices.
  • Creacion de Profiles.

Descripcion del problema

Con respecto a la creacion de PROFILES, el siguiente error aparecera  si no contamos con los privilegios necesarios para aplicar las recomendaciones obtenidas.

Ante el intento de setear un profile por comandos

El resultado que nos aparece es el siguiente:

SQL> execute sys.dbms_sqltune.accept_sql_profile(task_name => 'HEAVYQUERY',replace => TRUE);
BEGIN sys.dbms_sqltune.accept_sql_profile(task_name => 'HEAVYQUERY',replace => TRUE); 
*
ERROR at line 1:
ORA-24265: Insufficient privileges for SQL profile operation
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
ORA-06512: at "SYS.DBMS_SQLTUNE", line 5659
ORA-06512: at "SYS.DBMS_SQLTUNE", line 5535
ORA-06512: at "SYS.DBMS_SQLTUNE", line 5564
ORA-06512: at line 1

ORA-24265: Insufficient privileges for SQL profile operatio

Ante el intento de aplicar el PROFILE desde Cloud Control.