1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      CBO如何選擇相同cost的索引

      ACOUG年會楊長老的演講中,曾提到一個問題,

      成都創(chuàng)新互聯(lián)公司服務(wù)項目包括青云譜網(wǎng)站建設(shè)、青云譜網(wǎng)站制作、青云譜網(wǎng)頁制作以及青云譜網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,青云譜網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到青云譜省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

      一條SQL語句,兩種執(zhí)行計劃的cost值相同,CBO是如何選擇執(zhí)行計劃?

      翻譯一下問題,創(chuàng)建測試表數(shù)據(jù),

      SQL> create table z (a number, b number);
      Table created.

      SQL> begin 
        2    for i in 1 .. 10000 loop
        3      insert into z values(i, i);
        4    end loop;
        5    commit;
        6  end;
        7  /
      PL/SQL procedure successfully completed.

      SQL> create index idx_z_01 on z(a);
      Index created.

      SQL> create index idx_z_02 on z(b);
      Index created.

      SQL> exec dbms_stats.gather_table_stats('BISAL', 'Z', cascade=>true);
      PL/SQL procedure successfully completed.

      對于以下SQL,

      select * from z where a=1 and b=1;

      根據(jù)10053顯示,可以看出,IDX_Z_01和IDX_Z_02這兩個索引,cost相同,CBO會選擇何種執(zhí)行計劃?

      注:關(guān)于10053介紹,可以參考《 探索索引的奧秘 - 10053事件 》

      Index Stats::
        Index: IDX_Z_01  Col#: 1
          LVLS: 1  #LB: 20  #DK: 10000  LB/K: 1.00  DB/K: 1.00  CLUF: 18.00
        Index: IDX_Z_02  Col#: 2
          LVLS: 1  #LB: 20  #DK: 10000  LB/K: 1.00  DB/K: 1.00  CLUF: 18.00

      Access Path: index (AllEqRange)
          Index: IDX_Z_01
          resc_io: 2.00  resc_cpu: 14613
          ix_sel: 0.000100  ix_sel_with_filters: 0.000100
          Cost: 2.00  Resp: 2.00  Degree: 1
        Access Path: index (AllEqRange)
          Index: IDX_Z_02
          resc_io: 2.00  resc_cpu: 14613
          ix_sel: 0.000100  ix_sel_with_filters: 0.000100
          Cost: 2.00  Resp: 2.00  Degree: 1

      楊長老提到dbsnake曾經(jīng)寫過,檢索了下,有一篇文章介紹,

      《CBO對于Cost值相同的索引的選擇》

      http://www.dbsnake.net/handle-equally-costed-indexes.html

      文章總結(jié)來講,

      對于Oracle 10gR2及其以上的版本,CBO對于Cost值相同的索引的選擇實際上會這樣:

      1. 如果Cost值相同的索引的葉子塊數(shù)量不同,則Oracle會選擇葉子塊數(shù)量較少的那個索引;

      2. 如果Cost值相同的索引的葉子塊數(shù)量相同,則Oracle會選擇索引名的字母順序在前面的那個索引。

      先驗證(2)的觀點,從上面10053可以看出,兩個索引的cost相同,葉子塊數(shù)相同,此時CBO選擇的是IDX_Z_01,因為他的名字,排在IDX_Z_02前面,

      Best:: AccessPath: IndexRange
        Index: IDX_Z_01
               Cost: 2.00  Degree: 1  Resp: 2.00  Card: 0.00  Bytes: 0

      執(zhí)行計劃顯示,使用索引IDX_Z_01,

      除了索引名稱,以及索引葉子塊,本來我懷疑聚簇因子,會是另外一個影響因素,但通過設(shè)置IDX_Z_01的clsfct高于IDX_Z_02的clsfct,

      exec dbms_stats.set_index_stats('BISAL','IDX_Z_01',clstfct=>21);

      根據(jù)10053顯示,IDX_Z_01的clsfct高于IDX_Z_02的clsfct,

      Index Stats::
        Index: IDX_Z_01  Col#: 1
          LVLS: 1  #LB: 100  #DK: 10000  LB/K: 1.00  DB/K: 1.00  CLUF: 21.00
        Index: IDX_Z_02  Col#: 2
          LVLS: 1  #LB: 20  #DK: 10000  LB/K: 1.00  DB/K: 1.00  CLUF: 18.00

      此時CBO選擇的是IDX_Z_01,因為他的名字,排在IDX_Z_02前面,并未考慮聚簇因子的影響,

      Best:: AccessPath: IndexRange
        Index: IDX_Z_01
               Cost: 2.00  Degree: 1  Resp: 2.00  Card: 0.00  Bytes: 0

      總結(jié):

      對于cost相同的索引,10gR2及以上的版本,Oracle CBO還是有方法選擇,索引葉子塊是第一個條件,索引名稱排序是第二個條件。


      當(dāng)前題目:CBO如何選擇相同cost的索引
      文章地址:http://www.ef60e0e.cn/article/gicjop.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        基隆市| 新竹县| 呼和浩特市| 镇康县| 保亭| 客服| 万荣县| 高雄市| 舒兰市| 阜康市| 苍山县| 尉犁县| 故城县| 兴和县| 洞口县| 府谷县| 黄平县| 六盘水市| 东城区| 尉氏县| 靖宇县| 青川县| 三亚市| 鸡东县| 渭南市| 苍梧县| 岳普湖县| 墨玉县| 平阳县| 桦川县| 田阳县| 河南省| 广昌县| 洪泽县| 惠安县| 博客| 邵武市| 桓台县| 稻城县| 贞丰县| 九寨沟县|