2010-05-10 6 views
2

Мы используем utl_file в Oracle 10g, чтобы скопировать blob из строки таблицы в файл в файловой системе, и когда мы вызываем utl_file.fclose(), это занимает много времени. Это 10-мегабайтный файл, который не очень большой, и для завершения требуется чуть более минуты. Кто-нибудь знает, почему это было бы так медленно?utl_file.FCLOSE() медленно с большими файлами

Благодаря

EDIT Похоже, это связано с нашей файловой системой. Когда мы пишем на локальный диск, он отлично работает.

ответ

2

Мы установили, что это проблема с сетевой файловой системой, вызывающей проблему. Когда мы удаляем это из проблемы и храним файл на локальном диске, он отлично работает. Мы смогли протестировать это в другой среде с той же конфигурацией, и это быстро и работает так, как ожидалось.

Теперь нам нужно вовлечь наших парней в сеть и посмотреть, почему передача данных в NFS настолько медленная в этой среде.

EDIT Это была скорость сети между сервером oracle и сервером UNIX. Он был настроен на полудуплекс 10 Мб в секунду. Таким образом, мы натолкнулись на полнодуплексный 100Mb, и теперь он отлично работает!

1

Вы делаете fflush до этого? Если нет, то fclose выполняет fflush для вас, и это может быть время. Проверьте это, выпустив fflush до закрытия.

Смежные вопросы