utl_file.FCLOSE() 处理大文件时速度很慢
Posted
技术标签:
【中文标题】utl_file.FCLOSE() 处理大文件时速度很慢【英文标题】:utl_file.FCLOSE() is slow with large files 【发布时间】:2010-05-10 18:41:53 【问题描述】:我们在 Oracle 10g 中使用 utl_file 将 blob 从表行复制到文件系统上的文件中,当我们调用 utl_file.fclose() 时需要很长时间。这是一个 10mb 的文件,不是很大,只需要一分钟多的时间就可以完成。有谁知道为什么会这么慢?
谢谢
编辑 看起来这与我们的文件系统有关。当我们写入本地驱动器时,它工作正常。
【问题讨论】:
【参考方案1】:我们已经确定是我们的网络文件系统挂载导致了问题。当我们从问题中删除它并将文件存储到本地驱动器时,它工作正常。我们能够在具有相同配置的另一个环境中对其进行测试,它速度快且按预期工作。
现在我们需要让我们的网络人员参与进来,看看为什么在这种环境下在 NFS 上传输数据如此缓慢。
编辑 它是 oracle 服务器和 UNIX 服务器之间的网络速度。它被设置为每秒半双工 10Mb。所以我们将它提高到全双工 100Mb,现在它工作得很好!
【讨论】:
【参考方案2】:在那之前你有没有做fflush?如果不是,那么 fclose 正在为您执行 fflush,这可能是时间所在。通过在关闭之前发出 fflush 来检查它。
【讨论】:
以上是关于utl_file.FCLOSE() 处理大文件时速度很慢的主要内容,如果未能解决你的问题,请参考以下文章