我们有一张桌子,里面放着数百万个小斑点(2-10千字节)。我们需要一次访问这个表的一部分,在检索所有这些blob的同时迭代它(这个“部分”通常是10*5行的顺序)。
我们使用Oracle 11g R1。
现在我正在考虑调整
OracleConnection.setDefaultRowPrefetch()
并提示它是只读的。
还有什么其他的调优方法可以实现?
另外,是否有人有使用Oracle11gr2处理小斑点的经验?有人告诉我,它比R1更适合处理小斑点,但我想知道这是否值得一试。
感谢您的任何建议!
编辑:“部分”中的所有行都将被使用——它们将被处理成一个特殊的大二进制文件,该文件将被另一个实体使用。所以迭代本身是无法避免的。
编辑:我们当前的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)
);