|
|
|
Progressbar и Бд
|
|||
|---|---|---|---|
|
#18+
Добрый день. Есть достаточно большая база данных, в которой осуществляется поиск и удаление дубликатов. Процесс достаточно долгий, поэтому хотелось бы прикрутить к процессу progressbar, но не могу понять, как пеально отобразить ход процесса. Подсчет количества элементов, которые надо удалить, осуществляется несколько быстрее, но ненамного ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 10:30 |
|
||
|
Progressbar и Бд
|
|||
|---|---|---|---|
|
#18+
Работать с курсором? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 10:46 |
|
||
|
Progressbar и Бд
|
|||
|---|---|---|---|
|
#18+
Hett, можно немного подробнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 10:55 |
|
||
|
Progressbar и Бд
|
|||
|---|---|---|---|
|
#18+
Timein, Хранимка сбрасывает процент в табличку. На клиенте раз в сек читаешь ее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 11:14 |
|
||
|
Progressbar и Бд
|
|||
|---|---|---|---|
|
#18+
Petro123, хранимой процедуры нет, если я правильно вас понял. Я только учусь и поэтому подумал, что могу обойтись без нее Вот код, на работу которого я хотел бы повесить бар. Если он совсем кривой, буду рад пояснениям. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 11:29 |
|
||
|
Progressbar и Бд
|
|||
|---|---|---|---|
|
#18+
Timein, в коде, проставь время или длительность. Раз у тебя - "долго". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 12:13 |
|
||
|
Progressbar и Бд
|
|||
|---|---|---|---|
|
#18+
Petro123, еще бы я знал это время) оно каждый раз разное. Я правильно, кстати, понимаю, что надо бы в разные потоки разнести бар и запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 12:22 |
|
||
|
Progressbar и Бд
|
|||
|---|---|---|---|
|
#18+
TimeinPetro123, еще бы я знал это время) оно каждый раз разное. Я правильно, кстати, понимаю, что надо бы в разные потоки разнести бар и запрос? ещё раз. Сначала конкретные логи со временем по проблеме. Потом пути решения проблемы. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 12:33 |
|
||
|
Progressbar и Бд
|
|||
|---|---|---|---|
|
#18+
Приведу свой код на эту тему, и я бы вынес код в листенере в отдельный метод, а то как-то нагромаждено получается всё в одно... еще и селекты тут же Код: 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. и отдельно метод который показывает у меня диалоговое окно чтобы чел ввел параметры Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Во втором куске про прогресбар тут: Код: java 1. 2. 3. 4. Код не претендует на идеальный, но это из первой версии, в нем помимо всего и комментариев почти нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 12:37 |
|
||
|
Progressbar и Бд
|
|||
|---|---|---|---|
|
#18+
но у меня не считает проценты, и как считать их для запроса бд я даже и не знаю, но подозреваю, что как и сказали - через хранимую процедуру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 12:39 |
|
||
|
Progressbar и Бд
|
|||
|---|---|---|---|
|
#18+
TimeinДобрый день. Есть достаточно большая база данных, в которой осуществляется поиск и удаление дубликатов. Процесс достаточно долгий, поэтому хотелось бы прикрутить к процессу progressbar, но не могу понять, как пеально отобразить ход процесса. Подсчет количества элементов, которые надо удалить, осуществляется несколько быстрее, но ненамного Чтобы работать с progressbarom Вы должны знать абсолютное значение чего-то(что и есть вся шкала) В вашем случае 1.Выясняем сколько записей дубликатов надо удалить. 2.Далее только работа на стороне клиента...через курсор. Выбирается текущая запись ,-удаляется или через "delete" или через пакет,процедуру и т.д. Он удаляет записи и прибавляет счётчик. На базе этого счётчика в другом потоке перерисовывается progressbar. Если у Вас удаляется на сервере процедурой. Обычно делают анимационный прогрессбар .Который просто что-то крутит или двигает,сообщая пользователю,что типа процесс идёт. А когда у вас процедура отработала то программа закрыла это диалоговое окно с анимационным прогрессбаром ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 14:35 |
|
||
|
Progressbar и Бд
|
|||
|---|---|---|---|
|
#18+
Совершенно необязательно делать точный progress-bar. Мои личные наблюдения над GUI и пользователями подсказывают что вполне возможно большой JOB разбить на порции к примеру 0%, 25%,50% и 100% и транслировать грубый progress bar. Второй вариант. Если мы заведомо знаем что вчера аналогичный джоб работал 2 часа. И сегодня база подросла на тот-же инкремент то и чистка будет работать сегодня тоже 2 часа. На основании этого можно рисовать красивую анимацию и пользователю будет вобщемто пофиг что она не отражает реалии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 15:54 |
|
||
|
Progressbar и Бд
|
|||
|---|---|---|---|
|
#18+
предлагаю посмотреть на проблему под другим углом. либо ТС удаляет стопицот миллионов записей с каскадами либо у него там индексов просто нет и delete запрос шерстит те самые стопицот миллионов. ставлю на второе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 16:57 |
|
||
|
Progressbar и Бд
|
|||
|---|---|---|---|
|
#18+
Там скорее всего 2-3 уровня ссылочных констрейнтов. Ситуация сама по себе нормальная просто никто не думал об оптимизации чистки. Я-бы с некоторыми допущениями делал тихо, ночью, disable constr + свою логику исходя из условий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 17:05 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39020223&tid=2125121]: |
0ms |
get settings: |
7ms |
get forum list: |
23ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
149ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 471ms |

| 0 / 0 |
