Sql 索引提示不起作用

Sql 索引提示不起作用,sql,oracle,indexing,Sql,Oracle,Indexing,我试图了解索引提示,但即使在查询中提供了提示,它也没有被使用。这是我遵循的步骤,我是否遗漏了什么 SQL> desc emp_1; Name Type Nullable Default Comments -------- ------------ -------- ------- -------- EMP_ID NUMBER EMP_NAME VARCHAR2(20) Y

我试图了解索引提示,但即使在查询中提供了提示,它也没有被使用。这是我遵循的步骤,我是否遗漏了什么

SQL> desc emp_1;
Name     Type         Nullable Default Comments 
-------- ------------ -------- ------- -------- 
EMP_ID   NUMBER                                 
EMP_NAME VARCHAR2(20) Y                         
DEPTNO   NUMBER(10)   Y               


SQL> desc dept
Name      Type         Nullable Default Comments 
--------- ------------ -------- ------- -------- 
DEPT_ID   NUMBER       Y                         
DEPT_NAME VARCHAR2(20) Y                         


SQL> CREATE INDEX abc_idex ON emp_1 (deptno);

Index created

select  /*+ index(emp_1.abc_idex) */ emp_name from emp_1
INNER JOIN dept ON  emp_1.deptno = dept.dept_id
解释计划:-

SELECT STATEMENT, GOAL = ALL_ROWS           6   1   28
 HASH JOIN          6   1   28
  TABLE ACCESS FULL EXAMINBI    EMP_1   2   1   25
  TABLE ACCESS FULL EXAMINBI    DEPT    3   4   12
根据雷内的回答

select  /*+ index(emp_1 abc_idex) */ emp_name from emp_1
INNER JOIN dept ON  emp_1.deptno = dept.dept_id
说明计划

SELECT STATEMENT, GOAL = ALL_ROWS           271 100000  800000
 MERGE JOIN         271 100000  800000
  TABLE ACCESS BY INDEX ROWID   EXAMINBI    EMP_1   267 100000  500000
   INDEX FULL SCAN  EXAMINBI    ABC_IDEX    131 100000  
  SORT JOIN         4   4   12
   TABLE ACCESS FULL    EXAMINBI    DEPT    3   4   12

根据,您不能在表规范和索引规范之间放置

根据,您不能在表规范和索引规范之间放置

@Rene-我在emp_1表中添加了大约100000条记录,无论如何,这不重要,因为我在这里给出了明确的提示@Mat我只是想了解索引,所以这是一种自我学习。。我已经从sql提示符复制了所有命令。@Rene-我在emp_1表中添加了大约100000条记录,无论如何,这不重要,因为我在这里给出了明确的提示@Mat我只是想了解索引,所以这是一种自我学习。。我已经从sql提示符复制了所有命令。谢谢,它工作得很好。。我在答案中增加了新的解释计划。。谢谢,谢谢,效果很好。。我在答案中增加了新的解释计划。。谢谢