-- GRANT QUERY REWRITE TO TEST;
SQL> CREATE INDEX TEST.FBIDX_A_DT ON TEST.A(TO_CHAR(DT,'YYYYMMDDHH24:MI:SS'));
索引已创建。
SQL> @DELPLAN
已删除11行。
提交完成。
SQL> EXPLAIN PLAN FOR
2 SELECT COUNT(*) FROM TEST.A WHERE TO_CHAR(DT,'YYYYMMDDHH24:MI:SS')='20041208152323';
已解释。
SQL> @PLAN
OPERATION BYTES COST TEMP
------------------------------------------------------------ ------------ ------------ ----
SELECT STATEMENT() 8 1
SORT(AGGREGATE) 8
TEST.FBIDX_A_DT INDEX(RANGE SCAN) 8,000 1
SQL> ALTER INDEX TEST.FBIDX_A_DT DISABLE;
索引已更改。
SQL> @DELPLAN
已删除3行。
提交完成。
SQL> EXPLAIN PLAN FOR
2 SELECT COUNT(*) FROM TEST.A WHERE TO_CHAR(DT,'YYYYMMDDHH24:MI:SS')='20041208152323';
EXPLAIN PLAN FOR
*
ERROR 位于第 1 行:
ORA-30554: 基于函数的索引TEST.FBIDX_A_DT被禁用
SQL> ALTER INDEX TEST.FBIDX_A_DT ENABLE;
索引已更改。
SQL> EXPLAIN PLAN FOR
2 SELECT COUNT(*) FROM TEST.A WHERE TO_CHAR(DT,'YYYYMMDDHH24:MI:SS')='20041208152323';
已解释。
SQL> @PLAN
OPERATION BYTES COST TEMP
------------------------------------------------------------ ------------ ------------ ----
SELECT STATEMENT() 8 1
SORT(AGGREGATE) 8
TEST.FBIDX_A_DT INDEX(RANGE SCAN) 8,000 1
SQL> DROP INDEX TEST.FBIDX_A_DT;
索引已丢弃。