You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle数据库中FILTER操作的触发时机是什么?

关于Oracle执行计划中FILTER操作触发场景的疑问

我之前只知道FILTER操作会出现在主查询-子查询的关系中,但在下面这个简单SQL的执行计划(Id=1)里也发现了该操作:

SELECT *
  FROM emp
 WHERE empno = 7499
       AND
       hiredate BETWEEN '19000101' AND '29991212';

对应的执行计划:

Id Operation Name                Name
-- ----------------------------- ------
0  SELECT STATEMENT
1   FILTER                       EMP
2    TABLE ACCESS BY INDEX ROWID PK_EMP
3     INDEX UNIQUE SCAN

我尝试通过大量查询总结FILTER操作的触发场景,但没找到规律,特此询问:FILTER操作何时会触发?


更新内容

案例1:修改日期格式后仍触发FILTER

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYYMMDD';

SELECT *
  FROM emp
 WHERE hiredate BETWEEN '20000101' AND '29991212';

执行计划:

--------------------------------------------
| Id  | Operation          | Name | E-Rows |
--------------------------------------------
|   0 | SELECT STATEMENT   |      |        |
|*  1 |  FILTER            |      |        |
|*  2 |   TABLE ACCESS FULL| EMP  |      1 |
--------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   1 - filter(TO_DATE('29991212')>=TO_DATE('20000101'))
   2 - filter(("HIREDATE">='20000101' AND "HIREDATE"<='29991212'))

可以看到,即使将日期格式改为YYYYMMDD,FILTER操作仍然会触发。

案例2:TIMESTAMP类型表未触发FILTER

CREATE TABLE TEST1 ( col1 TIMESTAMP );
INSERT INTO test1 VALUES ( CURRENT_TIMESTAMP );

SELECT *
  FROM test1
 WHERE col1 BETWEEN '20000101' AND '29991212';

执行计划:

--------------------------------------------
| Id  | Operation         | Name  | E-Rows |
--------------------------------------------
|   0 | SELECT STATEMENT  |       |        |
|*  1 |  TABLE ACCESS FULL| TEST1 |      1 |
--------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   1 - filter(("COL1">=TO_TIMESTAMP('20000101') AND 
              "COL1"<=TO_TIMESTAMP('29991212')))

正如我在评论中所说,我认为这并非类型转换问题,否则上述查询也应该触发FILTER操作。


内容的提问来源于stack exchange,提问作者drj9812

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 03:22:46