utl_file.FCLOSE()对于大文件来说很慢

时间:2010-05-10 18:41:53

标签: oracle plsql oracle10g

我们在Oracle 10g中使用utl_file将blob从表行复制到文件系统上的文件中,当我们调用utl_file.fclose()时需要很长时间。这是一个10mb的文件,不是很大,只需要一分钟就可以完成。任何人都知道为什么这么慢?

由于

修改 看起来这与我们的文件系统有关。当我们写入本地驱动器时它工作正常。

2 个答案:

答案 0 :(得分:2)

我们已确定是我们的网络文件系统挂载导致问题。当我们从问题中删除它并将文件存储到本地驱动器时,它工作正常。我们能够在具有相同配置的另一个环境中对此进行测试,并且速度快且按预期工作。

现在我们需要让我们的网络人员参与进来,看看为什么在这种环境中传输NFS上的数据是如此之慢。

修改 这是oracle服务器和UNIX服务器之间的网络速度。它被设置为每秒10Mb的半双工。所以我们把它提升到全双工100Mb,现在效果很好!

答案 1 :(得分:1)

你之前做过fflush吗?如果没有,那么fclose正在为你执行fflush,那可能就是时间。在关闭前发出fflush检查它。