Predicate Information

今天看SQL执行计划时发现一条额外的Predicate Information。一时找不到该Predicate Information来自何处。一般情况下对Oracletable或者View增加行授权(即调用dbms_rls.add_policy创建policy后),对该表的查询会自动增加Predicate Information。
      但是这次查找DBA_POLICIES视图也没找到相关policy。不知道大家有没遇到这种情况。

附上代码如下:
EXPLAIN PLAN FOR
SELECT EXPIRATION_DATE, FREEZE_FLAG, LAST_COUNT_DATE, LOCATION_TYPE, 
       QTY_IN_TRANSIT, QTY_ONHAND, QTY_RESERVED, RECEIPT_DATE, 
       AVAILABILITY_CONTROL_ID, ROTABLE_PART_POOL_ID 
FROM INVENTORY_PART_IN_STOCK_TAB
WHERE PART_NO = :B8 AND CONTRACT = :B7 
AND CONFIGURATION_ID = :B6 AND LOCATION_NO = :B5 
AND LOT_BATCH_NO = :B4 AND SERIAL_NO = :B3 
AND ENG_CHG_LEVEL = :B2 AND WAIV_DEV_REJ_NO = :B1 
;
COMMIT;
SELECT * 
FROM TABLE(dbms_xplan.display)
;
执行计划及Predicate Information如下:
Plan hash value: 1802187973

------------------------------------------------------------------------------------------------------------
| Id  | Operation                   | Name                         | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |                              |     1 |    95 |     4   (0)| 00:00:01 |
|*  1 |  TABLE ACCESS BY INDEX ROWID| INVENTORY_PART_IN_STOCK_TAB  |     1 |    95 |     4   (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN          | INVENTORY_PART_IN_STOCK_PX01 |     3 |       |     3   (0)| 00:00:01 |
------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter("PART_NO"=:B8 AND "LOCATION_NO"=:B5 AND "CONTRACT"=:B7 AND "ENG_CHG_LEVEL"=:B2 AND 
              SUBSTR("INVENTORY_PART_IN_STOCK_TAB"."PART_NO",1,17)=SUBSTR(:B8,1,17) AND "CONFIGURATION_ID"=:B6 
              AND "LOT_BATCH_NO"=:B4 AND "SERIAL_NO"=:B3)
   2 - access("WAIV_DEV_REJ_NO"=:B1)

其中SUBSTR("INVENTORY_PART_IN_STOCK_TAB"."PART_NO",1,17)=SUBSTR(:B8,1,17)
为额外的谓词信息。

这条谓词信息足以改变该SQL的执行计划,从原本主键的INDEX UNIQUE SCAN 
变成一个普通索引的INDEX RANGE SCAN