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数据的检索.
我们可以采取哪些措施来提高这种性能?
其他一些选项:
LOB 列是内联存储(在数据行中)还是外联存储(在单独的位置)?如果 LOB 列往往较小(大小低于 4k),则可以使用该ENABLE STORAGE IN ROW
子句告诉 Oracle 在可能的情况下内联存储数据。
如果您的 LOB 较大且经常使用,它们是否存储在缓冲区高速缓存中?10g 中的默认值是 LOB NOCACHE
,这意味着针对它们的每个 i/o 操作都涉及对数据库的直接读取,这是一个同步磁盘事件,这可能会很慢。数据库跟踪将显示对direct path read / direct path write
事件的大量等待。
《Oracle 应用程序开发人员指南 - 大对象》的这一章非常值得一读。
归档时间: |
|
查看次数: |
1834 次 |
最近记录: |