2013-05-09 2 views
1

У нас есть приложение Java EE, которое поддерживает поставщиков Oracle, MySQL и SQL Server. мы используем модель представления для просмотра извлеченных данных из БД, также используя разбиение на страницы в модели DAO, и это работает до сих пор, но теперь мы работаем с миллионами записей, таких как 10 миллионов, которые вызывают у нас большую проблему поскольку наши проблемы с производительностью приложений становятся очень плохими. После некоторых проведенных нами исследований мы обнаружили, что порядок в запросе вызывает большую медлительность на уровне БД, но мы все равно должны его использовать.Обработка огромного объема данных с использованием Java EE

Вопрос: есть ли какой-либо метод работы с этим объемом данных с хорошей производительностью (время отклика и проблемы с памятью)?

+1

Их много, и большинство из них не будут работать в вашей ситуации. Это выходит за пределы SO. Я предлагаю http://programmers.stackexchange.com/. – BevynQ

ответ

2

Если вы используете статью ORDER BY часто, вам следует создать индекс на поле, которое вы заказываете. Это резко увеличит производительность заказа (но, конечно, немного замедлит вставку).

+0

Привет, Михал Борек, спасибо за ваши ответы. у нас есть 25-30 столбцов в среднем с по меньшей мере 32 внешним ключом (подтаблицы), вредно ли выполнять индексирование для всех этих столбцов. – Salah

+1

32 внешних ключа и 10 миллионов строк таблицы, похоже, что некоторые рефакторинг тоже могут помочь – DaveRlz

+0

@JUBA Я думаю, вы должны сбалансировать количество индексов, чтобы разместить их там, где вы заказываете наиболее часто. Вы также можете объединить его с кешированием, потому что я думаю, что некоторые из запросов чаще всего вызываются, а другие. –

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