У нас есть таблица, в которой мы храним миллионы маленьких больших двоичных объектов (2-10 КБ). И нам нужно обращаться к части этой таблицы за раз, повторяя ее во время извлечения всех этих BLOB-объектов (эта «часть» обычно имеет порядок 10 ** 5 строк).
Мы используем оракул 11g R1.
Сейчас я думаю о настройке OracleConnection.setDefaultRowPrefetch()
и намекаю, что это только для чтения.
Какие еще настройки возможны?
Кроме того, есть ли у кого-нибудь опыт работы с небольшими BLOB-объектами с помощью Oracle 11g R2? Кто-то сказал мне, что он лучше оптимизирован по сравнению с R1 для обработки небольших BLOB-объектов, но мне было интересно, стоит ли попробовать.
Любой совет приветствуется!
РЕДАКТИРОВАТЬ: Будут использованы все строки в «части» - они будут обработаны в специальный большой двоичный файл, который будет использоваться другой сущностью. Так что самой итерации нельзя избежать.
РЕДАКТИРОВАТЬ: наш текущий DDL (частично, модифицированный)
TABLESPACE "BLOB_STUFF" LOB(
"STUFF"
)
STORE AS BASICFILE "BLOBS_FILE"(
TABLESPACE "BLOBS" ENABLE STORAGE IN ROW CHUNK 8192 NOCACHE LOGGING STORAGE (INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
);