【Fenng 】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() 方法。
這個故事告訴我們,JDBC 其實問題挺多的。同樣,TIMESTAMP 潛在的問題也不少。
--EOF-
http://www.dbanotes.net/database/jdbc_settimestamp_performance.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1384/viewspace-353128/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 請問一個有關jdbc效能的問題JDBC
- Oracle JDBC驅動使用setDate()、setTimestamp()導致全表掃描OracleJDBC
- JDBC問題,求助JDBC
- JDBC中事務的問題JDBC
- BMP的JDBC問題,請指教JDBC
- jdbc資源的回收問題!JDBC
- JDBC連線MySQL失效的問題JDBCMySql
- JDBC連線ORACLE問題JDBCOracle
- JDBC中事務的問題之二JDBC
- jdbc連線mysql問題-helpJDBCMySql
- 【MyBatis】1:JDBC程式設計存在的問題MyBatisJDBCC程式程式設計
- 一個關於jdbc2的問題JDBC
- 關於jdbc的一個問題,高手解惑JDBC
- 爭用!!!!一個關於JDBC的問題!JDBC
- 解決jdbc不能重連mysql的問題JDBCMySql
- 【求助】我使用JAVA JDBC的批次提交的問題JavaJDBC
- Sybase15驅動包的問題com.sybase.jdbc3.jdbc.SybDriverJDBC
- JDBC Oracle executeUpdate 卡死問題解決JDBCOracle
- servlet 呼叫jdbc 出現得問題ServletJDBC
- 關於資料庫和jdbc的問題,指教資料庫JDBC
- 請教banq問題,關於hibernate的jdbc的JDBC
- JDBC用ResultSet訪問大量資料時會遇到的問題JDBC
- QtWebEngine效能問題QTWeb
- WebService效能問題Web
- 一個一直困惑的關於jdbc in 的問題JDBC
- CQRS批量操作的效能問題
- 關於 Puerts 的效能問題
- 提個小問題--關於jdbc事務JDBC
- 效能優化問題優化
- JSF效能問題JS
- 兩個小問題深入淺出List的效能問題
- JDBC學習筆記-----jdbc效能最佳化 (轉)JDBC筆記
- JDBC的XML編碼和Delphi融合時的編碼問題JDBCXML
- 關於JDK1.2的JDBC中文問題的解決 (轉)JDKJDBC
- MySQL JDBC row_count()數字不準確的問題MySqlJDBC
- 請教彭老師關於jdbc的問題,謝謝!JDBC
- 一個使用JDBC按Date查詢查詢的問題JDBC
- 請教一個在Session Bean中使用JDBC的問題SessionBeanJDBC