Ola Pessoal .....Belezinha..
Hoje irei dar uma dica rapída sobre o Assitente de Ajuste Sql ( SQL Tunning Advisor)
Ele é utilizado para ajudar os DBA`s a otimizar , e realizar ajustes nas querys do banco de dados e surgiu com a versão 10g do Oracle.
Lembre-se sempre pesquizem o material da Oracle para Mais informações.
Eu utilizei o Oracle 11g como ambiente de teste.
Referencias:http://www.oracle-base.com/articles/10g/AutomaticSQLTuning10g.php
Mãos a Obra ....
1-Executar o script para Criacao da tabela de Planos.
SQL> @?/RDBMS\ADMIN\utlxplan.sql;
SQL> desc plan_table
2-Executar explain de determinada declaração:
SQL> SET TIMING ON -- Para verificarmos o tempo de execução
SQL>explain plan SET STATEMENT_ID=’ID’ for Select * From scott.emp ;
SQL> SET TIMING OFF
3-Visualize as saida da tabela de planos com a o pacote dbms_xplan:
select * from TABLE(dbms_xplan.display);
4-Conceder privilégio para que um usuário possa utilizar o Advisor de Auste SQL
CONN sys/password AS SYSDBA
GRANT ADVISOR TO scott;
CONN scott/tiger
5-Criar uma tarefa para executar o Advisor
SQL> DECLARE
l_sql VARCHAR2(500);
l_sql_tune_task_id VARCHAR2(100);
BEGIN
l_sql := 'SELECT * FROM emp';
l_sql_tune_task_id := DBMS_SQLTUNE.create_tuning_task (
sql_text=> l_sql,user_name => 'SCOTT',SCOPE => DBMS_SQLTUNE.scope_comprehensive,
time_limit => 60,task_name => 'emp_tuning_task');
DBMS_OUTPUT.put_line('l_sql_tune_task_id: ' || l_sql_tune_task_id);
END ;
/
PL/SQL procedure successfully completed.
6-Com a tarefa de ajuste definida o próximo passo é executá-lo usando o procedimento EXECUTE_TUNING_TASK:
SQL> EXEC DBMS_SQLTUNE.execute_tuning_task(task_name =>'emp_tuning_task');
PL/SQL procedure successfully completed.
Quick Tip:Durante a fase de execução você pode querer fazer uma pausa e reiniciar a tarefa, cancelar ou reiniciar a tarefa de permitir que ele seja re-executado
a-Interromper e retomar uma tarefa de afinação
EXEC DBMS_SQLTUNE.interrupt_tuning_task (task_name => 'emp_tuning_task');
EXEC DBMS_SQLTUNE.resume_tuning_task (task_name => 'emp_tuning_task');
b-Cancelar uma tarefa
EXEC DBMS_SQLTUNE.cancel_tuning_task (task_name => 'emp_tuning_task');
c-Redefinir uma tarefa de ajuste que permite que ele seja re-executada.
EXEC DBMS_SQLTUNE.reset_tuning_task (task_name => 'emp_dept_tuning_task');
7-O status da tarefa de ajuste pode ser monitorado usando a visão DBA_ADVISOR_LOG:
SELECT task_name, status FROM dba_advisor_log WHERE owner ='SCOTT';
8-Depois que a tarefa de ajuste foi executado com êxito as recomendações podem ser exibidas usando a função REPORT_TUNING_TASK:
SET LONG 10000;
SET PAGESIZE 1000
SET LINESIZE 200
SELECT DBMS_SQLTUNE.report_tuning_task('emp_tuning_task') AS recommendations FROM dual;
SET PAGESIZE 24
SQL> SELECT DBMS_SQLTUNE.report_tuning_task('emp_tuning_task') AS recommendations
2 FROM DUAL;
9-Após a sessão de ajuste a tarefa de ajuste pode ser eliminada utilizando o procedimento DROP_TUNING_TASK:
BEGIN
DBMS_SQLTUNE.drop_tuning_task (task_name => 'emp_tuning_task');
END;
/
Bom Valeu ......Fiquem com Deus .
Muito legal seu blog Luciana.
ResponderExcluirAbs !