分类: Oracle
2010-08-31 19:22:39
我们发现如果直接将JAVA的日期类型做为绑定变量,有严重问题。比如: Select * from xxxty_user_feedback where mdi_date>#vdate# 应该使用代表日期的字符串作为绑定变量,然后利用ORACLE的to_date函数进行转换,如: Select * from xxxty_user_feedback where mdi_date>to_date(#vdate#,’yyyy-mm-dd hh24:mi:ss’); 发现这个问题是一个SQL很慢,导致数据库LOAD很高。该SQL访问一个分区表,时间字段是分区字段,但是执行计划是走全表扫描,这个表有几十个G大。为什么没有走到相应的分区呢?最后发现是由于类型转换的原因。我们还进一步发现,如果这样使用的话,连索引都无法使用。所以一定要用to_date函数在Oracle中转换。 |