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