ORACLE10G以后版本的SQL Tuning advisor可以從以下四個(gè)方面給出優(yōu)化方案
? (1)為統(tǒng)計(jì)信息丟失或失效的對象收集統(tǒng)計(jì)信息
? (2)考慮優(yōu)化器的任何數(shù)據(jù)偏差、復(fù)雜謂詞或失效的統(tǒng)計(jì)信息
? (3)重新構(gòu)建 SQL 以優(yōu)化性能
? (4)提出新索引建議
下面來實(shí)際測試:
1、為SQL_id創(chuàng)建一個(gè)STA( SQL Tuning advisor) 分析任務(wù) (使用SYS用戶執(zhí)行)
SQL> variable task_li_test varchar2(2000);
SQL>exec :task_li_test:=dbms_sqltune.create_tuning_task(sql_id=>'1z9atcd704psu',time_limit=>600,task_name=>'li_sql_1');
?
2、執(zhí)行上面創(chuàng)建的STA (需要一定的時(shí)間)
SQL> exec dbms_sqltune.execute_tuning_task(task_name=>'li_sql_1');
?
3、查詢優(yōu)化任務(wù)創(chuàng)建與執(zhí)行的情況
select a.owner,b.task_id,b.task_name,a.created from dba_advisor_tasks a,dba_advisor_log b where a.task_id=b.task_id and a.task_name= 'li_sql_1'
owner |
task_id |
task_name |
created |
SYS |
106698 |
? ? li_sql_1 |
2013-9-14 16:57 |
?
4、查看任務(wù)優(yōu)化報(bào)告 (優(yōu)化的詳細(xì)內(nèi)容)
SQL>select dbms_sqltune.report_tuning_task( 'li_sql_1' ) from dual;
?
5、接受建議的 SQL 概要文件,即創(chuàng)建SQL_Profle
SQL> execute dbms_sqltune.accept_sql_profile(task_name => 'li_sql_1',task_owner =>'SYS', replace => TRUE);
?
6、查看第5步創(chuàng)建起來的SQL_Profile信息
SQL>select a.name,a.task_id,a.created from dba_sql_profiles a,dba_advisor_log b where a.task_id=b.task_id and b.task_name= 'li_sql_1'
NAME |
TASK_ID |
?CREATED |
SYS_SQLPROF_01411bdf99410002 |
106699 |
? ? 14-9月 -13 05.49.00.000000 下午 |
?
7、再次執(zhí)行SQLID為‘1z9atcd704psu’的語句
7.1、執(zhí)行時(shí)間由原來的6分鐘降為3秒
7.2、查看執(zhí)行計(jì)劃,執(zhí)行計(jì)劃中包含下面信息,說明是使用了創(chuàng)建的SQL_Profile所起到的效果
? - SQL profile SYS_SQLPROF_01411bdf99410002used for this statement
?
8、刪除SQL_Profile
SQL>exec dbms_sqltune.drop_sql_profile( name => ' SYS_SQLPROF_01411bdf99410002 ' );
?
9、刪除優(yōu)化任務(wù)
SQL> exec dbms_sqltune.drop_tuning_task(task_name => 'li_sql_1');
? 本文為“踩點(diǎn)”原創(chuàng),轉(zhuǎn)發(fā)請說明出處。謝謝!
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
