|
|
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
Приветствую! К примеру, во вьюшке 60076 записей; чтобы заполнить комбобокс, как показано на рисунке в конце поста- требуется порядка ~5..6 минут, что, как мне кажется, не допустимо долго. Возможно, есть способ ускорить выборку? Буду весьма признателен за информацию. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. Собственно, сам класс OrganizationsHandbook - Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. Файл конфигурации - Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. HibernateUtil - Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Глобальный контекст - Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 14:57:49 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
Как вы себе представляете юзера, который выбирает одну из 60076 записей? Вот так сидит и листает? Откуда уверенность в том что тормозит именно хибернейт, а не companies.addItem, например? Или вывод контрола на страницу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 15:02:27 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
Приветствую, Blazkowicz! Свойство Код: java 1. определяет функционал QuickSearch в данном случае, т.е. достаточно начать вводить посимвольно, чтобы инициировать фильтрацию. Относительно companies.addItem- интересное замечание. Я подумаю, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 15:08:15 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
ivanov-voidтребуется порядка ~5..6 минут чтобы снизить до макс.10 сек - всё равно надо дать юзверю механизм настроечных фильтров с сохранением (индивидуальных). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 15:16:30 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
По аналогии: "пагинацию придумали трусы!" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 15:22:59 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
Petro123ivanov-voidтребуется порядка ~5..6 минут чтобы снизить до макс.10 сек - всё равно надо дать юзверю механизм настроечных фильтров с сохранением (индивидуальных).Ну что ж вы за глупости такие то пишите Какие юзеры? Какие настроечные фильтры? Проблема в том, что пользователю надо давать подсказки по списку имеющихся объектов. У автора это, разумеется, сделано очень глупо - он зачем то вытаскивает вообще все объекты и вытаскивает их целиком. Вместо этого надо стремиться вытаскивать минимум информации из БД. Например, вытаскивать только имена, которые будут показаны пользователю и ID, которые будут использованы где-то в запросе. Плюс такого варианта - очень быстрый, результаты можно закешировать. Есть другой вариант - вытаскивать не все объекты, а только те, которые попадают под паттерн, введеный юзверем. Тут кеширование не прокатит (а значит будет страдать БД), зато этот вариант может оказаться подходящим при разрстании таблицы до очень большого кол-ва записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 15:23:49 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
IDVsbruckПо аналогии: "пагинацию придумали трусы!" пагинация <> фильтру. Неужели не в курсе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 15:26:27 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, хотя, если ты про дополнительно, как вариант, то ... извини :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 15:27:33 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
Надо инструменты получше изучать. В том же Vaadin есть концепция - Container: https://vaadin.com/api/com/vaadin/data/Container.html по логике она должна уметь делать ленивую загрузку, чтобы не грузить юзеру 60К записией, которые ему триста лет не нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 15:28:52 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
svenomУ автора это, разумеется, сделано очень глупо svenom, чёто у тебя слово "глупо" - слишком часто. Даже вникать в пост лень. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 15:29:22 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
Приветствую всех! ... механизм настроечных фильтров с сохранением (индивидуальных). вытаскивать только имена, которые будут показаны пользователю и ID, которые будут использованы где-то в запросе. вытаскивать не все объекты, а только те, которые попадают под паттерн, введеный юзверем концепция - Container: https://vaadin.com/api/com/vaadin/data/Container.html ... Клево, благодарю за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 15:36:37 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
Petro123пагинация <> фильтру. Неужели не в курсе? Шутник! Не в 1 классе! Просто фильтр может выдать тоже слишком много записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 16:36:56 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
На моем (довольно старом) ноуте вычитывание такой таблицы из БД занимает пару секунд. 5-6 минут - это на нагруженной базе или нет? Если на нагруженной, то сколько времени занимает вычитывание таблицы через jdbc или через консольный клиент (в последнем случае перенаправьте вывод результатов в nul, так как терминал тормозит))? Я был бы очень благодарен за ответ. Если по существу, то нужен fuzzy search. У вас какая СУБД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 17:20:19 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪНа моем (довольно старом) ноуте вычитывание такой таблицы из БД занимает пару секунд. 5-6 минут - это на нагруженной базе или нет? Если на нагруженной, то сколько времени занимает вычитывание таблицы через jdbc или через консольный клиент (в последнем случае перенаправьте вывод результатов в nul, так как терминал тормозит))? Я был бы очень благодарен за ответ. Если по существу, то нужен fuzzy search. У вас какая СУБД? Да что вы на базу смотрите? У автора Vaadin тормозтит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 17:22:49 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
У автора Vaadin тормозтит. А что он там делает по 5 минут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 17:30:06 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪУ автора Vaadin тормозтит. А что он там делает по 5 минут? 60т. раздели на время - не так и много ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 17:41:32 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪЕсли по существу, то нужен fuzzy search. У вас какая СУБД?Нет тут никакого fuzzy, здесь нужен точный матчч заданому паттерну. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 17:48:33 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪА что он там делает по 5 минут? http://dev.vaadin.com/browser/svn/versions/6.7/src/com/vaadin/ui/AbstractSelect.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. и так 60000+ раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 17:49:48 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
Blazkowiczи так 60000+ раз Да ещё на JavaScript ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 17:50:06 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
svenomНет тут никакого fuzzy, здесь нужен точный матчч заданому паттерну. И ленивая загрузка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 17:52:40 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
Да, все верно. Вспомнил свои посты на этот счет как раз - 1, 2, из этого синтезирую решение. Всем еще раз спасибо за информацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 18:10:20 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
ivanov-void, Посмотрите в сторону: Hibernate Container ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 19:33:35 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
Использую Vaadin и Hibernate, тот же выпадающий список но всего 10т.р. записей, вроде не тормозит - подгружается при необходимости. Та же ситуация с таблицами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 19:54:20 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
не могу понять для чего надо юзеру эти тысячи значений? я использую оперратор like (mssql, mysql) для вывода отфильтрованных значений при вводе символов. и вывожу юзеру не больше 10 строк, как результат выбор нужного из 700 000 значений - юзером 3-9 сек (это с учетом реакции юзера, нажатие на кнопки) если следовать вашими методами - это передача юзеру огромниго , не нужного ему количества информации, куча потраченного в пустую времени не заполнение комбо. а если это jsp страница, то .... почему не используются вебсервисы? ведь всё просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 20:20:28 |
|
||
|
Hibernate :выборка 60076 записей в представленной конфигураци занимает значительное время
|
|||
|---|---|---|---|
|
#18+
Dflzя использую оперратор like (mssql, mysql) для вывода отфильтрованных значений при вводе символов. В Vaadin'е в этом КомбоБоксе точно также все происходит, можно лениво прогружать все десятки тысяч записей, прокручивая список, а можно набирать начальные буквы и значения списка будут отфильтровываться по введенным символам. Скорее всего автор, либо что-то отключил, потому что по-умолчанию всегда все лениво прогружается. (сомниваюсь что сейчас прав буду - не присвоил .setImmediate(true) переменной комбобокса). Но еще более вероятно, что у него здоровенный ентити-файл, с кучей связей, которые НЕ Lazy. Из за этого имея даже 10 объектов можно получить хорошие такие тормоза :) В конце концов надо бы трейс посмотреть, если там тысячами прут селекты гибернейта, то предыдущее предложение точно верно. Ну и самое невероятное, версия Vaadin'a какая-то кривая - тогда надо ее сменить, естественно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2012, 21:13:23 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37652257&tid=2132603]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
47ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
93ms |
get tp. blocked users: |
2ms |
| others: | 343ms |
| total: | 540ms |

| 0 / 0 |
