我想升级我的项目的jdbc驱动程序。 目前我正在使用 ojdbc5.jar。 我想升级到ojdbc8.jar。
我注意到读取 blob 现在慢得多。
try (Connection connection = DriverManager.getConnection(url, username, password)) {
try (final PreparedStatement statement = connection.prepareStatement("select * from BLOB_TABLE")) {
try (ResultSet resultSet = statement.executeQuery()) {
while (resultSet.next()) {
final Blob blob = resultSet.getBlob("MYBLOB");
}
}
}
}
该表包含 10.000 个条目。 使用 ojdbc5 驱动程序大约需要 0.1 秒。 使用 ojdbc8 驱动程序大约需要 5-6 秒。
我正在使用 Oracle Database XE 11.2 和 12.2 以及 Java 8。 有什么解决办法吗?
最佳答案
较新的驱动程序不仅可以获取 lob 定位器,还可以从 LOB 中预取数据。因此,调用 resultSet.getBlob(columnName)
的成本可能会更高,但调用 blob.getBytes()
的速度会更快。总的来说,新驱动程序的性能应该会更好。
关于java - ResultSet.getBlob() 在 ojdbc8 上非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49252582/