utl_file.FCLOSE () работает медленно с большими файлами - PullRequest
2 голосов
/ 10 мая 2010

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

Спасибо

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

Ответы [ 2 ]

2 голосов
/ 11 мая 2010

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

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

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

1 голос
/ 10 мая 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...