ORACLE优化之执行规划(1) - TABLE FULL SCAN/INDEX FULL SCAN
TABLE FULL SCAN
全表扫描,表示表中所有记录都被访问到。如果表很大,
该操作对查询性能的影响会很大,此时,建议使用索引
或去掉查询中的LIKE操作。
EXPLAIN PLAN
SET statement_id = 'ex_plan1' FOR
SELECT phone_number FROM employees
WHERE phone_number LIKE '650%';
INDEX RANGE SCAN [DESCENDING]
从相关索引中获取了一个或多个ROWID。
当查询条件字段具有非唯一索引,或者查询过滤条件是一个范围,
ORACLE将会采用该操作。
示例:
SELECT * FROM t_employee WHERE id > 11001;
SELECT * FROM t_employee WHERE first_name = 'Tommy';
此例中,id是关键字,first_name具有非唯一索引。
oracle会对此两个索引采用INDEX RANGE SCAN.
INDEX FULL SCAN [DESCENDING]
从相关的索引中获取了所有的ROWID。由于是按索引的顺序访问和获取ROWID,
因此获得的ROWID是直接排过序的。
示例1:
SELECT /*+ INDEX(T_EMPLOYEE IDX_NODES_ID)*/ id from T_EMPLOY