Table Iteration

Feb 07, 2009 15:21


Добрый день!

Java + SpringFramework 2.5 + Oracle

Дана таблица с количеством записей в несколько десятков миллионов штук, у которой есть primary key entity_id number. Так же есть интерфейс:

public interface TableIterator { void processRow(long rowId); }
Вопрос в том, как можно реализовать функцию:

void iterate(String tableName, String ( Read more... )

spring, java, database

Leave a comment

Comments 21

blinkov February 7 2009, 19:17:35 UTC
Можно попробовать вытаскивать id в приложение не все сразу или по одному, а пачками по несколько десятков/сотен/тысяч штук. Возможно может получиться неплохой компромиссный вариант...

Reply

dair_targ_one February 7 2009, 19:22:15 UTC
Спасибо, я об этом уже тоже подумал =)

Reply


1esha February 8 2009, 04:31:19 UTC
обычный resultSet с setFetchSize не походит?

Reply

dair_targ_one February 8 2009, 08:50:45 UTC
Оно настолько умное, что не сделает сначала выборку?

Reply

den_orlov_wtf February 8 2009, 14:51:33 UTC
Если я правильно понял информацию с http://www.hibernate.org/314.html, то Oracle 9 будет разбивать все на части на клиентской стороне (на уровне jdbc драйвера):

"Because the underlying server does not support scrollable cursors, Oracle JDBC must implement scrollability in a separate layer. It is important to be aware that this is accomplished by using a client-side memory cache to store rows of a scrollable result set.

Important: Because all rows of any scrollable result set are stored in the client-side cache, a situation where the result set contains many rows, many columns, or very large columns might cause the client-side Java virtual machine to fail. Do not specify scrollability for a large result set.

Scrollable cursors in the Oracle server, and therefore a server-side cache, will be supported in a future Oracle release."

Reply

dair_targ_one February 8 2009, 15:53:26 UTC
Спасибо.

Reply


Leave a comment

Up