日期:2014-05-17  浏览次数:20955 次

trunc日期会影响索引的使用吗?
在做ebs11.0的二次开发时,碰到这个问题,
我做了一下测试,发现并没有影响
例:
select *
  from inv.mtl_material_transactions t
 where t.organization_id = 4
   --and t.transaction_date < trunc(to_date('&f_date', 'yymmdd
-------使用索引是MTL_MATERIAL_TRANSACTIONS_N5,列是ORGANIZATION_ID, TRANSACTION_DATE

select *
  from inv.mtl_material_transactions t
 where t.organization_id = 4
   and trunc(t.transaction_date)<to_date('&f_date', 'yymmdd')      ---
-------使用索引是MTL_MATERIAL_TRANSACTIONS_N5,列是ORGANIZATION_ID, TRANSACTION_DATE   

select *
  from inv.mtl_material_transactions t
 where t.organization_id = 4
   and t.transaction_date < trunc(to_date('&f_date', 'yymmdd'))  
-------使用索引是MTL_MATERIAL_TRANSACTIONS_N5,列是ORGANIZATION_ID, TRANSACTION_DATE   
   
请兄弟们帮忙分析一下

------解决方案--------------------
不會影響
------解决方案--------------------
我想回复你,但是CSDN一直提示不能提交非法数据,我就服了……

对于组合索引,你organization_id放在前面,只要查询条件里面有organization_id=4,就会走这个索引,至于后面的字段用没用到,刚看这个看不出来。
你把索引里面的两个字段顺序换一下,然后再看下执行计划,就看出区别来了