2014-10-03 2 views
0

Мой прецедент заключается в том, что мне нужно прочитать все строки из таблицы и заполнить кеш (возможно, это не идеальный кэш, но скажите, что это мой вариант использования). В этом случае я должен сделать разбитый на страницы запрос в базу данных или просто выдать select * и использовать некоторый разумный размер выборки? Пожалуйста посоветуй.Чтение всей таблицы из базы данных

+0

Ну, насколько велика эта таблица? – OldProgrammer

+0

3 миллиона для начала. Ожидается, что он станет больше – FourOfAKind

+0

Это приведет его в кеш, а затем оно будет выведено из кэша. У вас действительно есть конкретная проблема с производительностью, которую нужно решить? Может быть, вы должны это прочитать: http://stackoverflow.com/questions/15975921/how-to-pin-a-table-to-oracle-dbms-shared-pool-in-11g. Или, может быть, вам нужно использовать эту технологию IMDB: http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/timesten/tt1121/2_caching_imdbcache/2_caching_imdbcache.htm –

ответ

0

Если вам нужна вся таблица (при условии, что у вас достаточно памяти), просто сделайте Select *, таким образом вы не будете подчеркивать пару раз в базе данных, выполняя множественный выбор и ограничивая размер выборки. Опять есть компромиссы. Таким образом, пользователи будут ждать там без отображения, пока база данных не вернет все и не будет обработана.

Смежные вопросы