代码之家  ›  专栏  ›  技术社区  ›  Dan H

对于大文件,utl_file.fclose()速度很慢

  •  2
  • Dan H  · 技术社区  · 14 年前

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

    谢谢

    编辑 看起来这和我们的文件系统有关。当我们写到本地驱动器时,它工作正常。

    2 回复  |  直到 14 年前
        1
  •  2
  •   Dan H    14 年前

    我们已经确定是我们的网络文件系统挂载导致了这个问题。当我们从问题中删除它并将文件存储到本地驱动器时,它可以正常工作。我们能够在另一个具有相同配置的环境中测试它,而且它很快并且工作正常。

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

    编辑 这是Oracle服务器和Unix服务器之间的网络速度。它被设置为每秒10MB的半双工。所以我们把它升级到了全双工100MB,现在它工作得很好!

        2
  •  1
  •   DCookie    14 年前

    在那之前你是不是在做一件事?如果没有,那么fclose正在为您执行fflush,这可能就是时间所在。在关闭之前,通过发出一个fflush来检查它。