Sybase TEXT与Oracle CLOB性能

wsa*_*ton 5 oracle performance sybase jdbc clob

我们正在将数据库从Sybase转换为Oracle,我们遇到了性能问题.在Sybase中,我们有一个TEXT字段,并用Oracle中的CLOB替换它.

这就是我们在java代码中访问数据的方式:

while(rs.next()) {
  String clobValue = rs.getString(1);  // This takes 176ms in Oracle!
  .
  .
}
Run Code Online (Sandbox Code Playgroud)

该数据库遍布全国各地,但我们仍然没有Sybase的任何性能问题及其对TEXT数据的检索.

我们可以采取哪些措施来提高这种性能?

Ada*_*sch 3

其他一些选项:

LOB 列是内联存储(在数据行中)还是外联存储(在单独的位置)?如果 LOB 列往往较小(大小低于 4k),则可以使用该ENABLE STORAGE IN ROW子句告诉 Oracle 在可能的情况下内联存储数据。

如果您的 LOB 较大且经常使用,它们是否存储在缓冲区高速缓存中?10g 中的默认值是 LOB NOCACHE,这意味着针对它们的每个 i/o 操作都涉及对数据库的直接读取,这是一个同步磁盘事件,这可能会很慢。数据库跟踪将显示对direct path read / direct path write事件的大量等待。

《Oracle 应用程序开发人员指南 - 大对象》的这一章非常值得一读。