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

Oracle不同版本在驅動運行中如何使用Java Date

數據庫 Oracle
本文主要涉及到的是Oracle不同版本在驅動運行中如何使用Java Date的相關實際操作步驟的介紹,希望你會有所收獲。

本文主要介紹的是Oracle不同版本在驅動運行中如何使用Java Date的相關問題的解答,如果你在計算機學習的過程中遇到Oracle不同版本在驅動運行中使用Java Date時,出現的類似的問題,你就可以點擊以下的文章。

這里兩天都在對一條sql進行調優。該sql并不復雜,類似于

select ... from some_view union all select ... from some_table where datetime >= d1 and datetime< d2 and .... 底層使用ibatis2.1.6 + Oracle 10g。

今天花了些時間繼續研究這個問題,導致該問題的原因的確是“導致Oracle對datetime字段進行了隱式類型轉換,最終CBO未能使用該列的全局索 引”,不過問題不是出在ibatis上而是Oracle driver。

設我們使用這樣的sql通過綁定變量(類型為java.util.date)查詢數據庫,其中end_date是date類型且建立了索引。

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

通常,面對這樣的sql,我們希望它的執行計劃走index range scan。然而在默認情況下Oracle CBO是不會選擇走索引地,以上面這語句為例,Oracle實際走的是table full scan。為什么會這樣 呢?

這類問題是Oracle不同版本在9.2以后引入了TIMESTAMP才開始出現地。

在 9.2之前,Oracle只有DATE,而沒有TIMESTAMP。在jdbc preparedStatement.setTimestamp時,綁定變量的類型會被正確的設置為DATE。而在9.2之后,Oracle開始支持 TIMESTAMP了,這兩者都能支持精度為yyyy-MM-dd hh24:mi:ss的時間(當然TIMESTAMP能支持到納秒級別),但jdbc driver的api未變同樣在preparedStatement.setTimestamp時,Oracle driver就得選擇到底該把綁定變量的類型設置為DATE還是TIMESTAMP呢?

估計是由于TIMESTAMP的精度更高,Oracle 最終默認選擇了將綁定變量的類型設置為了TIMESTAMP。那么這個時候,如果面對實際屬性為DATE的列,那么就會導致 Oracle隱式地進行形如“TO_TIMESTAMP(date_column) = parameter_timestamp”轉換,要 知道Oracle CBO不會選擇被某函數作用的列上的索引,除非是函數索引。

因此,最終也會導致最上面的情況使用table full scan而不是index range scan。

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

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

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

3.使用V8Compatible flag。

 

以上的相關內容就是對Oracle不同版本驅動中使用Java Date的問題的介紹,望你有所收獲。

【編輯推薦】

  1. Oracle clob實際相關代碼的解析
  2. Oracle存儲過程的返回列表如何以java來調用
  3. Oracle版本驅動中使用Java Date產生問題的解答
  4. Oracle clob實際相關代碼的解析
  5. Oracle數據庫備份和恢復的基本命令
責任編輯:佚名 來源: 互聯網
相關推薦

2010-03-30 13:02:51

Oracle版本

2018-01-08 15:30:18

Linux命令date

2018-06-20 09:39:47

Oracle存儲配置

2010-10-28 15:38:24

Oracle to_d

2023-01-12 11:31:00

K8sToken

2010-04-01 10:55:48

Oracle 數據類型

2010-03-30 15:54:27

Oracle date

2011-06-20 14:00:26

Qt qmake

2010-05-05 17:53:39

Oracle 8i

2010-03-30 12:30:45

Oracle Hibe

2010-04-21 13:21:24

Oracle時間

2021-11-11 09:01:01

Helm Chart Kubernetes

2010-04-23 15:34:41

Oracle 數據庫

2010-05-06 10:09:44

Oracle in

2010-04-30 08:47:22

Oracle分頁存儲

2010-03-30 19:19:13

Oracle產品

2024-12-17 16:26:31

2021-02-06 17:55:41

微服務Maven版本控制

2019-06-14 11:15:27

WindowsLinuxWSL
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲国产成人精品女人久久久 | 伊色综合久久之综合久久 | 亚洲日本免费 | 天堂在线91| 久久久久中文字幕 | 国产精品久久久久久久久久免费 | 久久香蕉精品视频 | 欧美一区二区三区在线观看视频 | 亚洲一区二区网站 | 亚洲成人福利视频 | 亚洲国产精品一区二区三区 | 国产一区二区观看 | 国产亚洲精品久久久久动 | 日韩中文字幕在线视频 | 国产精品1区 | 日本福利一区 | 中文字幕电影在线观看 | 天天操天天干天天透 | 91麻豆产精品久久久久久夏晴子 | 亚洲高清av | 日韩av在线一区 | 亚洲激情第一页 | 国产乱一区二区三区视频 | 欧美精品一区久久 | 日韩欧美在线观看 | 91久久国产综合久久 | 成人在线视频网址 | 免费在线观看黄色av | 国产在线小视频 | 亚洲专区在线 | 日韩成人一区二区 | 网色 | 日韩视频成人 | 久久日本 | 日本福利在线观看 | 狠狠操狠狠操 | 欧美一级久久 | 久久青| 大乳boobs巨大吃奶挤奶 | 狠狠色综合久久丁香婷婷 | 日日摸日日碰夜夜爽亚洲精品蜜乳 |