Home

Thursday, December 5, 2013

Menggunakan DBMS_SQLTUNE

Untuk melakukan tuning sebuah SQL Statement tools yang paling saya sukai adalah menggunakan DBMS_SQLTUNE, Berikut ini contoh penggunannya :

DECLARE
  l_sql               VARCHAR2(29000);
  l_sql_tune_task_id  VARCHAR2(100);
BEGIN
  l_sql := 'SELECT TO_CHAR(CALL_DATE_TIME,''YYYY-MM-DD HH24:MI:SS'') AS CALL_DATE_TIME,CDR_TYPE,CALL_TYPE,CALLING_PARTY_NO,CALLED_PARTY_NO,' ||
           'CALL_DURATION,CALL_CHARGE,PREVIOUS_BALANCE AS PREV_BALANCE,BALANCE_AFTER_CALL AS NEW_BALANCE ' ||
           'FROM TABLE_NAME '||
           'WHERE MSISDN=''628388001319'' ' ||
           'AND CDR_TYPE=''GPRS'' ' ||
           'AND CALL_DATE_TIME >= trunc(sysdate - 0) ' ||
           'and (substr(called_party_no,1,4) = ''NORF'' or call_charge < 0)';
         
l_sql_tune_task_id := DBMS_SQLTUNE.create_tuning_task (
                          sql_text    => l_sql,
                          bind_list   => sql_binds(anydata.ConvertNumber(100)),
                          user_name   => 'IDA',
                          scope       => DBMS_SQLTUNE.scope_comprehensive,
                          time_limit  => 60,    ==>(Waktu yang di perlukan untuk analisa query,klo ada err INTERUPT perbesar nilai parameter ini)
                          task_name   => 'endera_tuning',
                          description => 'Tuning Query Improvement');
  DBMS_OUTPUT.put_line('l_sql_tune_task_id: ' || l_sql_tune_task_id);
END;

Script di atas akan menmberikan output berupa rekomendasi yang harus di lakukan terhadap query statements  :)

No comments:

Post a Comment