您好,登錄后才能下訂單哦!
like 后%位置不走索引問題
create table t2 as select * from dba_objects;——創建表
create index idx_t2_name on t2(object_name);——創建索引
set autotrace on ——開啟執行計劃跟蹤
select * from t2 where object_name like 'DE%';——走索引
select * from t2 where object_name like '%DE';——不走索引
查詢字段類型與表字段類型不一致導致隱式轉換,不走索引問題
create table t3(id varchar2(10),name varchar2(10));——創建表t3
insert into t3 select * from dba_objects;——插入數據
commit; ——提交
create index idx_t3_id on t3(id);創建id索引
set autotrace on——開啟執行計劃自動跟蹤
select * from t3 where id=7000;——不走索引,會出現隱式轉換,filter(TO_NUMBER("ID")=7000)
select * from t3 where id='7000';——走索引,cost大大提升
另:不要用select '*' from........寫select 星號時,oracle會查詢數據字典再轉換成具體的列名,增加oracle的開銷,建議寫具體字段名稱。
附:查詢表的索引信息
select INDEX_NAME,INDEX_TYPE,TABLE_OWNER,TABLE_NAME,TABLESPACE_NAME from user_indexes where table_name='T1';
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。