這學期的項目中,用hibernate和oracle。表結構我們不能改,這樣的遺留系統用hibernate有點麻煩。汗!別人把可變長的字符類型設計為CHAR,郁悶死。這樣所有?形式的sql語句基本上無效(不是恰好這么長就找不到數據),這是oracle的JDBC限定了(mysql的JDBC不會)。然后就想到在=號左邊用TRIM可以解決PrepareStatement找不到數據的問題。
麻煩來了。同學用100W行數據來測試。發現比較卡。然后追蹤hibernate的SQL日志發現有trim的語句就慢。然后把此SQL語句在PL/SQL客戶端試下,發現在26秒才能找到結果。汗!這么嚴重!去了TRIM不到1秒的事情。
字段類型的設計不好,就這樣...
可以看下
oracle jdbc char 字段 PreparedStatement 查詢問題
posted on 2007-12-26 10:42
流浪汗 閱讀(1211)
評論(0) 編輯 收藏 所屬分類:
oracle