|
substring BLOBа медленно
|
|||
---|---|---|---|
#18+
WildSery, дома повторю. Если кому-то интересно могу выложить код процедуры на github. Ничего удивительного в этом нет. В моей процедуре BLOB читается однократно (сразу все сегменты) в stream. Дальше я из stream получаю строку, а потом собственно разделяю на подстроки, каждая подстрока возвращается аналогом SUSPEND. Я делал подобную процедуру и на Delphi, но там скорость была почти в 2 раза меньше. Видимо дорого преобразование string <-> ansichar[N] ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 13:27 |
|
substring BLOBа медленно
|
|||
---|---|---|---|
#18+
Симонов Денис В моей процедуре BLOB читается однократно (сразу все сегменты) в stream. Дальше я из stream получаю строку, а потом собственно разделяю на подстроки, каждая подстрока возвращается аналогом SUSPEND. Не пробовал читать блоб частями ? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 13:41 |
|
substring BLOBа медленно
|
|||
---|---|---|---|
#18+
hvlad, была мысль обрабатывать обрабатывать частями по 32K. Помимо экономии памяти можно получить профит в виде досрочного прерывания всякими first/rows, так чтобы блоб не читался до конца ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 14:11 |
|
substring BLOBа медленно
|
|||
---|---|---|---|
#18+
Симонов Денис WildSery, дома повторю. Если кому-то интересно могу выложить код процедуры на github. Было бы интересно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 16:24 |
|
substring BLOBа медленно
|
|||
---|---|---|---|
#18+
WildSery, а вот теперь list_to_rows на том же самом компьютере и БД Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 21:33 |
|
substring BLOBа медленно
|
|||
---|---|---|---|
#18+
Симонов Денис, Лучше в виде статьи. Пусть даже самой простенькой. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 21:49 |
|
substring BLOBа медленно
|
|||
---|---|---|---|
#18+
Vlad F, дык писал уже, но не по плюсы https://habr.com/ru/post/455375/ https://github.com/sim1984/udr-book ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 22:10 |
|
substring BLOBа медленно
|
|||
---|---|---|---|
#18+
Симонов Денис, Теперь про плюсы. Пора уже их пропагандировать.))) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 23:46 |
|
substring BLOBа медленно
|
|||
---|---|---|---|
#18+
Симонов Денис ------ Информация о производительности ------ ... Current memory = 280 864 576 Max memory = 281 217 456 Memory buffers = 16 384 Reads from disk to cache = 0 Writes from cache to disk = 1 127 Чтений из кэша = 81 387 Кстати, кто даст внятный, но лаконичный перевод вот этого вот всего на русский, чтобы я забил в локализацию эксперта? Например, Current/max memory - это что и в чем? Reads\writes - это, я так понимаю, в страницах. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 04:36 |
|
substring BLOBа медленно
|
|||
---|---|---|---|
#18+
авторКстати, кто даст внятный, но лаконичный перевод вот этого вот всего на русский, чтобы я забил в локализацию эксперта? а оно действительно надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 07:27 |
|
substring BLOBа медленно
|
|||
---|---|---|---|
#18+
IBExpertНапример, Current/max memory - это что и в чем? в байтах конечно же. Главное не перевести Current как "текущая", а то стрёмно будет ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 09:19 |
|
substring BLOBа медленно
|
|||
---|---|---|---|
#18+
Симонов Денис а вот теперь list_to_rows на том же самом компьютере и БД ЗЫ. Надеюсь, это "Fetch All" для обоих замеров? Уточню, на всякий случай. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 09:57 |
|
substring BLOBа медленно
|
|||
---|---|---|---|
#18+
WildSery, я же специально агрегатами min/max обвернул, чтобы там ровно 1 запись возвращалась ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 09:59 |
|
substring BLOBа медленно
|
|||
---|---|---|---|
#18+
Симонов Денис, А. Это я ещё кофе не выпил. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 10:02 |
|
substring BLOBа медленно
|
|||
---|---|---|---|
#18+
hvladЭто требует много памяти. Не пробовал читать блоб частями ? попробовал. Очень долго ломал голову, пока не вспомнил, что LIST очень забавно сегментирует блоб. Я то наивно полагал, что прочитаю через getSegment столько байт сколько указываю. Вроде была идея сделать так чтобы LIST возвращал потоковый блоб или передумали? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2020, 18:28 |
|
substring BLOBа медленно
|
|||
---|---|---|---|
#18+
Симонов Денис, Благодарю. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2020, 21:23 |
|
substring BLOBа медленно
|
|||
---|---|---|---|
#18+
Накидал в Lazarus функцию для клиента, может кому пригодится : Код: pascal 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.
Использование функции Код: pascal 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.
файл на 77 мб (42 785 записей) грузится в БД 10 мин Клиентская машина - ноутбук, win 10, памяти 12гб, Core i7 4700HQ, 2.40GHz, про сервер писал выше. Конечно, в процедуре-чоппере есть "вода", можно кое-что и выкинуть, но, думаю, радикально это скорость не повысит. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2020, 11:36 |
|
substring BLOBа медленно
|
|||
---|---|---|---|
#18+
zeon11, поищи готовый SAX parser для XML. Он как раз для случаев когда XML реально большой, чтобы не загружать всё дерево DOM в память. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2020, 11:46 |
|
|
start [/forum/topic.php?fid=40&gotonew=1&tid=1560441]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
14ms |
get first new msg: |
9ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 172ms |
0 / 0 |