Chinaunix首页 | 论坛 | 博客
  • 博客访问: 841267
  • 博文数量: 150
  • 博客积分: 5123
  • 博客等级: 大校
  • 技术积分: 1478
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-06 10:03
文章分类

全部博文(150)

文章存档

2011年(2)

2010年(139)

2009年(9)

分类: Oracle

2010-08-31 19:22:39

不要将java中的日期类型直接传递给ORACLE

我们发现如果直接将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中转换。
阅读(2026) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~