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() 处理大文件时速度很慢的主要内容,如果未能解决你的问题,请参考以下文章

时速云企业级容器PaaS技术沙龙 第十期上海站

被勒索后的72 小时“生死时速”

时速160公里中速磁浮列车组装完成 即将进入集成测试阶段

世界首次!复兴号将实现时速350公里自动驾驶

云原生技术服务商「时速云」获C1轮融资,聚焦云原生应用及数据平台

Leetcode5764. 准时到达的列车最小时速(JAVA二分)