sunfruit[請訪問http://www.fruitres.cn]

          --我相信JAVA能走得更遠 QQ:316228067

          Oracle優化你的查詢--關于避免索引隱式失效

              --sunfruit

              說明了Oracle數據庫中的索引隱式失效的問題

          1、隱式轉換導致索引失效.這一點應當引起重視.也是開發中經常會犯的錯誤.
              由于表的字段tu_mdn定義為varchar2(20),但在查詢時把該字段作為number類型以where條件傳給Oracle,這樣會導致索引失效.
              錯誤的例子:select * from test where tu_mdn=13333333333;
              正確的例子:select * from test where tu_mdn='13333333333';
             
          2、對索引列進行運算導致索引失效,我所指的對索引列進行運算包括(+,-,*,/,! 等)
              錯誤的例子:select * from test where id-1=9;
              正確的例子:select * from test where id=10;
             
          3、使用Oracle內部函數導致索引失效.對于這樣情況應當創建基于函數的索引.
              錯誤的例子:select * from test where round(id)=10; 說明,此時id的索引已經不起作用了
              正確的例子:首先建立函數索引,create index test_id_fbi_idx on test(round(id));
                               然后 select * from test where round(id)=10; 這時函數索引起作用了

          posted on 2006-02-19 17:26 sunfruit 閱讀(1210) 評論(0)  編輯  收藏 所屬分類: 數據庫

          主站蜘蛛池模板: 铜川市| 化州市| 色达县| 许昌市| 张家界市| 黄陵县| 丹江口市| 崇仁县| 曲麻莱县| 荣昌县| 宣武区| 宜春市| 曲水县| 彰化县| 穆棱市| 建始县| 恩施市| 柘城县| 松滋市| 青神县| 赫章县| 仲巴县| 大悟县| 阜宁县| 汽车| 承德县| 布尔津县| 清苑县| 扎囊县| 浙江省| 南华县| 全州县| 本溪| 米易县| 房产| 黑山县| 景德镇市| 达州市| 波密县| 黄龙县| 马关县|