1.使用EXPLAIN PLAN:
在SQLPlus中,可以使用以下命令生成执行计划:
EXPLAIN PLAN FOR <你的SQL语句>; SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);EXPLAIN PLAN FOR SELECT * FROM ( SELECT id, cate_code, cert_no, operation_time, req_time, status FROM ORDER_DETAIL WHERE ID > :lastId ORDER BY ID ) t WHERE ROWNUM <= :pageSize; SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY)这将显示SQL语句的执行计划,包括是否使用了索引以及使用了哪种类型的索引扫描(如索引唯一扫描、索引范围扫描等)。
2.使用DBMS_XPLAN包
该包提供了多种方法来查看执行计划。例如,可以使用以下命令查看最近执行的SQL的执行计划:
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(NULL, NULL, 'ALL'));这将显示当前在共享池中的SQL执行计划
3.使用AUTOTRACE:
在SQL*Plus中,可以启用AUTOTRACE功能,以便在执行SQL时自动显示执行计划和性能统计信息:
SET AUTOTRACE ON; <你的SQL语句>; SET AUTOTRACE OFF;4.常见的索引失效原因
使用函数或运算符对索引列进行操作(如SUBSTR、DECODE等)会导致索引失效。
在WHERE子句中使用不等于操作(如<>、NOT IN等)通常会导致不使用索引。
- 使用LIKE '%T'等模糊查询时,索引也可能失效
- 通过以上方法,您可以有效地判断SQL查询是否使用了索引,并了解索引的使用情况。