如何强制oracle不使用索引

Fr_*_*ien 8 sql oracle hints query-performance

我有一个要求,我必须强制sql不要使用表上存在的特定索引.

例如,

create table t1(id varhcar2(10),data1 varchar2(3000));
create table t2(id varhcar2(10),data2 varchar2(3000));

create index id1 on t1(id);

select * from t1,t2 where t1.id=t2.id;
Run Code Online (Sandbox Code Playgroud)

我不能删除索引id1,也不能删除它,因为我没有权限.因此我想添加一些提示,以避免使用它..

是否有任何此类提示,或者是否有任何解决方法.

提前致谢

Dmi*_*nko 12

使用NO_INDEX提示

http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements006.htm#BABHJBIB

例如

SELECT /*+ NO_INDEX(t1 id1) */ 
  FROM t1,
       t2  
 WHERE t1.id = t2.id;
Run Code Online (Sandbox Code Playgroud)