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

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

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

    隨筆-94  評論-56  文章-3  trackbacks-0
    索引是表的一個概念部分 , 用來提高檢索數據的效率, ORACLE 使用了一個復雜的自平衡 B-tree 結構 . 通常 , 通過索引查詢數據比全表掃描要快 . ORACLE 找出執行查詢和 Update 語句的最佳路徑時 , ORACLE 優化器將使用索引。
    大部分的性能問題其實都是索引應用的問題,Where子句、Order By、Group?By 都要用到索引。
    一般開發人員認為將索引建全了就可以下班回家了,實則還有頗多的思量和陷阱。


    索引列上不要使用IS NULL 或 IS NOT NULL
    ×?SELECT?Col?FROM?tbl?WHERE?col?IS?NULL

    索引列上不要使用函數
    ×?SELECT?Col?FROM?tbl?WHERE?substr(name , ? 1 , ? 3 )? = ?'ABC'
    ○?SELECT?Col?FROM?tbl?WHERE?name?LIKE?'ABC%'
    WHERE子句中,如果索引列是函數的一部分.優化器將不使用索引而使用全表掃描.

    索引列上不要使用NOT != 、 <>
    ×?SELECT?Col?FROM?tbl?WHERE?col?! = ? 10
    ○?SELECT?Col?FROM?tbl?WHERE?col?>?
    10 ?OR?col?<? 10

    記住 , 索引只能告訴你什么存在于表中 , 而不能告訴你什么不存在于表中 . 要避免在索引列上使用NOT, NOT會產生在和在索引列上使用函數相同的影響. ORACLE”遇到”NOT,他就會停止使用索引轉而執行全表掃描。

    索引列上不要進行計算

    ×?SELECT?Col?FROM?tbl?WHERE?col?/? 10 ?>? 10
    ○?SELECT?Col?FROM?tbl?WHERE?col?>?
    10 ?*? 10
    這是最最普遍的失效陷阱,比如where trunc(order_date)=trunc(sysdate), i+2>4。索引失效的原因也簡單,索引是針對原值建的二叉樹,你將列值*3/4+2折騰一番后,原來的二叉樹當然就用不上了。




    ?


    posted on 2007-01-22 11:13 小言身寸 閱讀(2295) 評論(0)  編輯  收藏 所屬分類: 數據庫/SQL語言
    主站蜘蛛池模板: 最近最新的免费中文字幕| 免费看国产一级特黄aa大片| 亚洲日韩精品无码专区| 国产成人精品免费视频大全五级| 一级毛片免费在线播放| 亚洲高清无在码在线无弹窗| 国产精品美女免费视频观看 | 亚洲视频在线观看不卡| 免费看大美女大黄大色| 免费精品久久天干天干| 亚洲AV电影天堂男人的天堂| 久久精品国产亚洲av麻豆| 日韩在线免费播放| 亚洲精品宾馆在线精品酒店| 亚洲精品乱码久久久久久久久久久久| 日韩在线免费视频| 青青操免费在线视频| 大桥未久亚洲无av码在线| 久久亚洲国产成人精品性色| 亚洲成A∨人片天堂网无码| 免费观看激色视频网站(性色)| 国产成人无码免费看片软件| 色老板亚洲视频免在线观| 亚洲国产精品乱码一区二区| 免费国产怡红院在线观看| 97在线观免费视频观看| 久久精品国产亚洲AV未满十八 | 亚洲最大的成人网| 久热综合在线亚洲精品| 亚洲精品在线视频| 日韩成人免费在线| 一级女人18毛片免费| 一区二区三区在线免费看| 久久不见久久见免费影院www日本| 亚洲第一成年免费网站| 亚洲国产成人精品无码区在线秒播 | 亚洲综合区图片小说区| 亚洲乱色熟女一区二区三区丝袜 | 久久久久亚洲av毛片大| 免费国产一级特黄久久| 在线观看免费a∨网站|