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.
Este error aparece debido a que se intentó una operación DDL en un PROFILE de SQL por medio de una sesión de usuario sin los privilegios adecuados.
Solucion
Aplicar los Grants Adecuados a nuestro usuario selecccionado para realizar tareas de Tunning.
GRANT CREATE ANY SQL_PROFILE, DROP ANY SQL_PROFILE, ALTER ANY SQL_PROFILE TO USER_TUN;
Con ello aplicaremos el profile adecuado, al SQL ID , segun las recomendaciones.
Espero que les sirva y sus comentarios.
Saludos a Peru !