首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ojdbc8上,ResultSet.getBlob()非常慢

在ojdbc8上,ResultSet.getBlob()非常慢
EN

Stack Overflow用户
提问于 2018-03-13 17:32:02
回答 1查看 680关注 0票数 0

我想升级我的项目的jdbc驱动程序。目前我使用的是ojdbc5.jar。我想升级到ojdbc8.jar。

我注意到现在读取blobs的速度要慢得多。

代码语言:javascript
复制
    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。有什么解决方案吗?

EN

回答 1

Stack Overflow用户

发布于 2018-03-13 22:05:49

较新的驱动程序不只是获取LOB定位器,它还从lob预取数据。因此,调用resultSet.getBlob(columnName)可能会更昂贵,但调用blob.getBytes()会更快。总体而言,使用较新的驱动程序,性能应该会更好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49252582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档