成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle版本驅(qū)動中使用Java Date產(chǎn)生問題的解答

數(shù)據(jù)庫 Oracle
Oracle版本在使用Java Date時會產(chǎn)生一些問題,你是否想問沒有其他的方法可以來正確的提供綁定變量?本文會想你提供一些方法來解決這個問題。

如果你在Oracle版本驅(qū)動中使用Java Date時產(chǎn)生一些問題的時候,你是否想了解不解之處,以下的文章主要是通過對Oracle版本驅(qū)動中使用Java Date的問題的實際應(yīng)用的方案的介紹,來解答你在Oracle版本驅(qū)動中使用Java Date的問題在實際操作方面的問題。

這里兩天都在對一條sql進行調(diào)優(yōu)。該sql并不復(fù)雜,類似于

  1. select ... from some_view union all select ... 
    from some_table where datetime 
    >= d1 and datetime< d2 and ....  

底層使用

  1. ibatis2.1.6 + oracle 10g 

今天花了些時間繼續(xù)研究這個問題,導(dǎo)致該問題的原因的確是“導(dǎo)致oracle對datetime字段進行了隱式類型轉(zhuǎn)換,最終CBO未能使用該列的全局索 引”,不過問題不是出在ibatis上而是Oracle driver。設(shè)我們使用這樣的sql通過綁定變量(類型為java.util.date)查詢數(shù)據(jù)庫,其中end_date是date類型且建立了索引。

  1. “select count(*) from table1 where end_date >=
     :1 and end_date 
    <= :2” 

通常,面對這樣的sql,我們希望它的執(zhí)行計劃走index range scan。然而在默認情況下oracle CBO是不會選擇走索引地,以上面這語句為例,oracle實際走的是table full scan。為什么會這樣 呢?這類問題是oracle版本在9.2以后引入了TIMESTAMP才開始出現(xiàn)的。

在 9.2之前,Oracle只有DATE,而沒有TIMESTAMP。在jdbc preparedStatement.setTimestamp時,綁定變量的類型會被正確的設(shè)置為DATE。而在9.2之后,oracle開始支持 TIMESTAMP了,這兩者都能支持精度為yyyy-MM-dd hh24:mi:ss的時間(當然TIMESTAMP能支持到納秒級別)。

但jdbc driver的api未變同樣在preparedStatement.setTimestamp時,oracle driver就得選擇到底該把綁定變量的類型設(shè)置為DATE還是TIMESTAMP呢?估計是由于TIMESTAMP的精度更高,Oracle 最終默認選擇了將綁定變量的類型設(shè)置為了TIMESTAMP。那么這個時候,如果面對實際屬性為DATE的列,那么就會導(dǎo)致 oracle隱式地進行形如

  1. “TO_TIMESTAMP(date_column) = parameter_timestamp” 

轉(zhuǎn)換,要 知道oracle CBO不會選擇被某函數(shù)作用的列上的索引,除非是函數(shù)索引。因此,最終也會導(dǎo)致最上面的情況使用table full scan而不是index range scan。

Oracle版本就沒有提供別的方法來正確地提供綁定變量嗎?oracle提供 了幾個方法來解決這個問題

1.升級到11g并使用新的正確的driver api。

2.將DATE列全都改成 TIMESTAMP列。

3.使用V8Compatible flag。

 

以上就是對Oracle版本驅(qū)動中如何使用Java Date的相關(guān)的內(nèi)容的介紹,望你會有所收獲。

【編輯推薦】

  1. 檢查Oracle DICOM 對象的典型示例
  2. Oracle ID 自增代碼的詳細介紹
  3. 對Oracle Multimedia導(dǎo)出圖像的操作步驟的描述
  4. 在Oracle模式中定義媒體對象有哪些
  5. Oracle Multimedia在ORDDicom中列中存儲DICOM詳解

 

責(zé)任編輯:佚名 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-03-30 16:22:55

Oracle不同版本

2010-04-23 09:58:30

Oracle管理

2010-04-27 18:24:56

Oracle常見問題

2010-04-28 11:09:47

Oracle常見問題

2010-10-28 15:38:24

Oracle to_d

2010-09-25 15:20:43

SQL遞歸語句

2012-03-08 10:18:33

JavaOracle

2009-06-10 09:58:32

Oracle sequHibernate

2010-12-28 16:23:03

2011-03-28 17:45:03

nagios問題

2010-03-30 14:32:38

Oracle Date

2010-10-25 16:13:31

Oracle to_d

2011-04-08 16:00:11

Oracle數(shù)據(jù)庫外部表

2009-09-23 13:04:58

HibernateOracle sequ

2011-07-21 11:19:51

JAVA

2010-05-11 13:42:36

MySQL隱藏空間

2010-04-06 10:40:24

2021-11-14 15:46:45

Windows 11Windows微軟

2009-09-08 14:53:46

CCNA考試

2011-04-13 09:02:37

WLAN無線
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 青青草一区 | 国产精品国产a | 一区二区av | 毛片黄片| 91久久国产综合久久 | 欧美激情精品久久久久 | 亚洲成人久久久 | 午夜爽爽男女免费观看hd | aa级毛片毛片免费观看久 | 国产精品国产三级国产aⅴ中文 | 亚洲成av人片在线观看 | 一级黄色录像毛片 | 国产精品1区2区3区 国产在线观看一区 | 台湾a级理论片在线观看 | 看毛片网站| 中文字幕在线一区二区三区 | 人操人免费视频 | 国产美女久久 | 日韩欧美网 | 免费黄色大片 | 在线观看黄色电影 | 欧美综合自拍 | 国产小视频在线 | 欧美日韩国产在线 | 国产免费一二三区 | 国产一区二区三区在线看 | 中文字幕伊人 | 久久99久久98精品免观看软件 | 国产清纯白嫩初高生视频在线观看 | 欧美视频精品 | 丝袜天堂 | 亚洲一区中文字幕 | 亚洲三级在线观看 | 在线观看中文字幕亚洲 | 亚洲成年影院 | 久久久在线视频 | 日韩精品av一区二区三区 | 欧美精品久久久久 | 日本精品视频在线观看 | 亚洲先锋影音 | 欧美日韩综合视频 |