<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    關(guān)于SQL的執(zhí)行計(jì)劃。

    C、語句級別
    這些需要用到Hint,比如:
    SQL> SELECT /*+ RULE */ a.userid,
    2 b.name,
    3 b.depart_name
    4 FROM tf_f_yhda a,
    5 tf_f_depart b
    6 WHERE a.userid=b.userid;

    4、為什么有時一個表的某個字段明明有索引,當(dāng)觀察一些語的執(zhí)行計(jì)劃確不走索引呢?如何解決呢 ?

    A、不走索引大體有以下幾個原因
    ♀你在Instance級別所用的是all_rows的方式
    ♀你的表的統(tǒng)計(jì)信息(最可能的原因)
    ♀你的表很小,上文提到過的,Oracle的優(yōu)化器認(rèn)為不值得走索引。

    B、解決方法
    ♀可以修改init<SID>.ora中的OPTIMIZER_MODE這個參數(shù),把它改為Rule或Choose,重起數(shù)據(jù)庫。也可以使用4中所提的Hint.
    ♀刪除統(tǒng)計(jì)信息
    SQL>analyze table table_name delete statistics;
    ♀表小不走索引是對的,不用調(diào)的。

    5、其它相關(guān)

    A、如何看一個表或索引是否是統(tǒng)計(jì)信息

    SQL>SELECT * FROM user_tables
    2 WHERE table_name=<table_name>
    3 AND num_rows is not null;
    SQL>SELECT * FROM user_indexes
    2 WHERE table_name=<table_name>
    3 AND num_rows is not null;

    b、如果我們先用CBO的方式,我們應(yīng)及時去更新表和索引的統(tǒng)計(jì)信息,以免生形不切合實(shí)的執(zhí)行計(jì)劃。

    SQL> ANALYZE TABLE table_name COMPUTE STATISTICS;
    SQL> ANALYZE INDEX index_name ESTIMATE STATISTICS;

    具體的ANALYZE語句請參照Oracle8i/9i 的refrence文檔。
    <================end of file“Oracle的優(yōu)化器(Optimizer)”=====================>


    下面的是我的關(guān)于一點(diǎn)執(zhí)行計(jì)劃的理解:

    1。首先要啟動trace的選項(xiàng):
    set autotrace trace eXPlain
    如果出現(xiàn)下面的錯誤:

    SQL>? set autotrace trace explain
    SP2-0613: Unable to verify PLAN_TABLE format or existence
    SP2-0611: Error enabling EXPLAIN report

    那么要先運(yùn)行下面的語句:
    ?@?/rdbms/admin/utlxplan.sql;

    2。分析下面的執(zhí)行計(jì)劃:

    SQL> select ename,dname??? from emp, dept?? where emp.deptno=dept.deptno???? and dept.dname in ('ACCOUNTING','RESEARCH','SALES','OPERATIONS');

    Execution Plan
    ----------------------------------------------------------
    ?? 0????? SELECT STATEMENT Optimizer=CHOOSE
    ?? 1??? 0?? NESTED LOOPS
    ?? 2??? 1???? TABLE Access (FULL) OF 'EMP'
    ?? 3??? 1???? TABLE ACCESS (BY INDEX ROWID) OF 'DEPT'
    ?? 4??? 3?????? INDEX (UNIQUE SCAN) OF 'PK_DEPT' (UNIQUE)

    關(guān)于前面的兩個數(shù)字,第一個是狀態(tài)ID,第二個是父ID。
    就是如下所示:0-->1-->2
    ??? ?? ?? ?? ?? ?? ?????
    ??? ?? ?? ?? ?? ?? ?? ?? -->3-->4
    在上圖里,0的執(zhí)行依靠1,1的執(zhí)行又依賴2和3,2是沒有子ID的,所以2最先執(zhí)行,然后是4,在然后是3;然后2和3的結(jié)果傳回1。
    在這個里面0行有個字“Optimizer=CHOOSE”,這個就是上文說的那個oracle的優(yōu)化器了。
    還有,看這個“ INDEX (UNIQUE SCAN) OF 'PK_DEPT' (UNIQUE)”,就知道這個語句運(yùn)行的時候是走INDEX的。

    posted on 2008-04-08 23:19 金家寶 閱讀(203) 評論(0)  編輯  收藏 所屬分類: oracle

    主站蜘蛛池模板: 亚洲欧洲第一a在线观看| 永久黄网站色视频免费直播| 亚洲永久精品ww47| 无码毛片一区二区三区视频免费播放| 免费国内精品久久久久影院| 亚洲娇小性xxxx色| 国产成人福利免费视频| 亚洲女同成av人片在线观看| 美女巨胸喷奶水视频www免费| 999zyz**站免费毛片| 中国亚洲女人69内射少妇| 日本一区二区在线免费观看| 亚洲一区二区视频在线观看 | 一级毛片高清免费播放| 国产又大又长又粗又硬的免费视频 | 色婷五月综激情亚洲综合| 在线看片免费人成视久网| 亚洲一区二区三区播放在线| 成视频年人黄网站免费视频| 亚洲人成网站免费播放| 亚洲?v女人的天堂在线观看| 久久免费99精品国产自在现线| 午夜性色一区二区三区免费不卡视频| 好大好深好猛好爽视频免费| 久久亚洲中文无码咪咪爱| 婷婷综合缴情亚洲狠狠尤物| 女人隐私秘视频黄www免费| 久久亚洲中文字幕精品有坂深雪| 亚洲狠狠婷婷综合久久| 国产成人精品亚洲精品| 在线免费观看h片| 亚洲综合视频在线观看| 日韩激情淫片免费看| 99久久免费国产精品热| 91亚洲精品麻豆| 免费在线看片网站| 黄色片免费在线观看| 亚洲老熟女五十路老熟女bbw| 久久午夜夜伦鲁鲁片免费无码影视| 亚洲国产婷婷香蕉久久久久久| 国产成人亚洲精品|