проблема с производительностью при сохранении / извлечении огромного большого двоичного объекта из базы данных Oracle с использованием Java - PullRequest
1 голос
/ 12 июня 2011

Я сохраняю огромный блоб (500 МБ) в базу данных Oracle с помощью JDBC.На вставку, а затем на извлечение уходит много времени.

Пожалуйста, сообщите, если кто-либо из вас сталкивался с этой проблемой.

Ответы [ 2 ]

5 голосов
/ 13 июня 2011

Многие люди, не работающие с базами данных, действительно боятся вставлять BLOB-объекты и CLOB-объекты в базы данных.Они не должны быть.Oracle управляет ими очень хорошо.Также имейте в виду, что Oracle также разрабатывает файловые системы (включая BTRFS), поэтому знайте о хранении всех видов данных.Данные в базе данных могут быть лучше защищены от сбоя носителя или системы, защищены от несанкционированного доступа и проверены на предмет ненадлежащего использования.

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

Конечно, стоит проверить, какое узкое место стоит первым.Если это сеть между сервером приложений и сервером БД, то никакие настройки базы данных не обойдут проблему.

1 голос
/ 12 июня 2011

500 МБ blob? Боже мой.

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

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

...