![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
scyther |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 12.4.2008 Репутация: нет Всего: нет |
Есть метод getMiddleTimeView который возвращает среднее время просмотра. Список list формируется по SQL запросу, который возвращает около 1'000'000 элементов.
Вот задача: как оптимизировать этот метод? Скорость выдачи результата очень медленная :( порядка 30..50 секунд sumSessions - тут можна получить сумму из SQL, а как быть с allTime?
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Поподробней насчет данных, как что хранится.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
w38 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 4.12.2006 Где: Украина, Одесса Репутация: нет Всего: нет |
что сразу бросилось в глаза:
1) проход по списку сделать итератором, вместо for (int i = 0; i < list.size(); i++) 2) избавиться от неявных оберток Double -> double про подсчет allTime на стороне сервера, что мешает использовать условные констуркции в SQL-выражениях, процедруах или представлениях ? |
|||
|
||||
scyther |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 12.4.2008 Репутация: нет Всего: нет |
LSD: вот тип ArrayList'а, остальное впринципе видно в первом посте
w38: "использовать условные констуркции в SQL-выражениях" - а можна, пожалуста, подробней об етом (или ссылки какие) |
|||
|
||||
Kangaroo |
|
|||
![]() AA - Aussie Animal ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2042 Регистрация: 7.10.2006 Где: US Репутация: 21 Всего: 104 |
зачем три раза рыться по массиву? Раз достань и используй. Может можно СКЛюм сделать sum(TimeIn*Sessions), я не уверен. -------------------- Lost.... |
|||
|
||||
scyther |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 12.4.2008 Репутация: нет Всего: нет |
Kangaroo: "sum(TimeIn*Sessions), я не уверен" можно.
Немного переписал метод
Новый код - новые ошибки
|
||||
|
|||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
В миллион записей, ты конечно прикалываешься выгружать в память! Раз ты игнорируешь получать данные с помощью SQL-скрипта, тогда прими к сведению:
Лучше делать страничную выгрузку данных. Что имею ввиду:
|
|||
|
||||
scyther |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 12.4.2008 Репутация: нет Всего: нет |
Platon: спасиба, вопрос решен
![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Я имел в виду, пояснить что там к чему. По коду не очень понятен смысл timeIn и sessions. А вообще самое быстрое и производительное это посчитать сумму в БД. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
scyther |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 12.4.2008 Репутация: нет Всего: нет |
LSD: так и сделал, все в sql считал, теперь работает за 0.5 секунды
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |