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)  編輯  收藏 所屬分類: 數據庫

          主站蜘蛛池模板: 噶尔县| 铅山县| 饶河县| 台湾省| 镇赉县| 永春县| 吉木乃县| 贵港市| 广灵县| 醴陵市| 宁蒗| 林口县| 手游| 瑞安市| 奉贤区| 容城县| 景东| 海兴县| 丰县| 图木舒克市| 开江县| 道孚县| 淅川县| 信丰县| 新乐市| 泽普县| 阳新县| 邳州市| 宜兰县| 大田县| 榆林市| 瓦房店市| 洛隆县| 灌南县| 西平县| 措美县| 沙雅县| 闻喜县| 高唐县| 綦江县| 军事|