|
|
|
Как оптимальнее получить данные из БД?
|
|||
|---|---|---|---|
|
#18+
Возвращаясь к давнему вопросу Задача следующая. Требуется сделать выборку данных, потом запихнуть ее в массив. Селект многотабличный. Я придумал три варианта решения: 1. Получить ResultSet. Потом сделать Код: plaintext 2. Сделать count(*) from (МойСелект). Инициализировать массивы. Опять сделать селект и заполнить массивы пройдясь последовательно по ResultSet. 3. Использовать не массивы, а ArrayList, тогда проблема с получением количества строк вроде как отпадает. Итак, какой метод будет оптимальнее с точки зрения используемой памяти и процессорного времени? Выборка максимально несколько тысяч строк, а так обычно сотня-две. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 15:57 |
|
||
|
Как оптимальнее получить данные из БД?
|
|||
|---|---|---|---|
|
#18+
ArrayList ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 16:05 |
|
||
|
Как оптимальнее получить данные из БД?
|
|||
|---|---|---|---|
|
#18+
пробелArrayList Если можно, то вкратце почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 16:10 |
|
||
|
Как оптимальнее получить данные из БД?
|
|||
|---|---|---|---|
|
#18+
1. ArrayList - обертка вокруг Object[]. да? 2. массивы, кстати можно "наращивать", что и делается внутри ArrayList. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 16:28 |
|
||
|
Как оптимальнее получить данные из БД?
|
|||
|---|---|---|---|
|
#18+
2GMax так твоя основная задача - как можно проще определить количество возвращенных записей? Если БД - Oracle, то м.б. попробовать сделать через запрос? К примеру: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Значение поля CNT в первой строке - общее количество строк. Это значение можно прочитать после прочтения первой записи Resultset'а. Хотя возникают дополнительные нагрузки на сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 16:32 |
|
||
|
Как оптимальнее получить данные из БД?
|
|||
|---|---|---|---|
|
#18+
To Denis Popov: Задача заполнить массив. А для того, чтобы инициализировать массив нужно знать количество строк. Можно и так. Вопрос в том, как будет оптимальнее в плане загрузки сервера и клиента. Сделать Count или использовать ArrayList. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 16:51 |
|
||
|
Как оптимальнее получить данные из БД?
|
|||
|---|---|---|---|
|
#18+
пробел1. ArrayList - обертка вокруг Object[]. да? 2. массивы, кстати можно "наращивать", что и делается внутри ArrayList. Просто не совсем представляю внутреннюю реализацию ArrayList. Может где какие статьи есть по этому поводу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 16:53 |
|
||
|
Как оптимальнее получить данные из БД?
|
|||
|---|---|---|---|
|
#18+
GMax пробел1. ArrayList - обертка вокруг Object[]. да? 2. массивы, кстати можно "наращивать", что и делается внутри ArrayList. Просто не совсем представляю внутреннюю реализацию ArrayList. Может где какие статьи есть по этому поводу?а src посмотреть? :) ArrayList Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 17:11 |
|
||
|
Как оптимальнее получить данные из БД?
|
|||
|---|---|---|---|
|
#18+
Имхо, не стоит полагаться на советы. Лучше проверить все на реальной машине, с конкретной СУБД, драйвером, таблицами и т.д. Времени это займет, вроде, не много, но пользы будет выше крыши. О результатах можно и сюда запостить, думаю всем будет интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 22:43 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=32966277&tid=2152792]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 403ms |

| 0 / 0 |
