程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle JDBC 中setTimestamp的相關問題有哪些

Oracle JDBC 中setTimestamp的相關問題有哪些

編輯:Oracle數據庫基礎

以下的文章我們主要介紹的是Oracle JDBC 的 setTimestamp 的相關的性能問題,我前兩天在相關網站看見Oracle JDBC 的 setTimestamp 的相關的性能問題的資料,覺得挺好,就拿出來供大家分享。

偶然發現三年前的一個技術問題。當時比較匆忙,避免掉即過去了。現在 Metalink 上其實已經把這個問題作為一個 Bug 處理了。

問題描述:通過 JDBC 上來的 Java 查詢應用,SQL 表現異常。表字段使用了 DATE 類型,針對該字段時間區域很小的范圍查詢(預期應該是走 INDEX RANGE SCAN),在 SQL Map 上指定索引,發現無效。仍然是 FULL TABLE SCAN 。

罪魁禍首:setTimestamp() 把值綁定為 TIMESTAMP 類型,這樣和 DATA 類型比較的時候,CBO 就會選擇全表掃描。

通過 Trace 能觀察到該異常行為。TIMESTAMP 在 Oracle JDBC 9.2.0.1 上就有了,連續幾個版本其實都有類似的問題。

解決辦法:使用 setString() 而不是 setTimestamp() 方法。

這個故事告訴我們,Oracle JDBC 其實問題挺多的。同樣,TIMESTAMP 潛在的問題也不少。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved