Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
скорость выгрузки в CSV
|
|||
|---|---|---|---|
|
#18+
Добрый день. Нужно выгрузить данные в CSV формат. В нескольких больших таблицах - по несколько миллионов записей. Выгружаю посредством Set result=##class(%ResultSet).%New("%DynamicQuery:SQL") Компьютер AMD 2800+, 512M RAM. Выгружается со скоростью примерно 300 записей в секунду. Это нормально? Пробовал посредством прямого доступа к данным (данные в list-е), скорость увеличивается ненамного. С уважением, Михаил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2011, 10:35 |
|
||
|
скорость выгрузки в CSV
|
|||
|---|---|---|---|
|
#18+
Вы не показали, как вы выгружаете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2011, 11:51 |
|
||
|
скорость выгрузки в CSV
|
|||
|---|---|---|---|
|
#18+
Блок А.Н., Set result=##class(%ResultSet).%New("%DynamicQuery:SQL") s sqlstr="SELECT * FROM "_ClsName Set sc=result.Prepare(sqlstr) If (sc="") Do DisplayError^%apiOBJ(sc) Quit Set sc=result.Execute() If (sc="") Do DisplayError^%apiOBJ(sc) Quit While result.Next(.sc) { If (sc="") Quit ........ тут write в файл ........ } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2011, 11:58 |
|
||
|
скорость выгрузки в CSV
|
|||
|---|---|---|---|
|
#18+
michaeldevp, Для поиска "узких" мест в коде можно воспользоваться утилитой MONLBL . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2011, 12:01 |
|
||
|
скорость выгрузки в CSV
|
|||
|---|---|---|---|
|
#18+
michaeldevp Set result=##class(%ResultSet).%New("%DynamicQuery:SQL") s sqlstr="SELECT * FROM "_ClsName Именно динамический? Версия Каше? michaeldevp ........ тут write в файл ........ Скрыто самое интересное... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2011, 13:55 |
|
||
|
скорость выгрузки в CSV
|
|||
|---|---|---|---|
|
#18+
doublefint, Запрос именно такой, как приведен. Версия - 5.0.21.6408.0 в цикле идут write-ы по свойствам,типа w r.Data(PropName) Главный вопрос: скорость такая - это нормально? хотя бы примерно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2011, 14:04 |
|
||
|
скорость выгрузки в CSV
|
|||
|---|---|---|---|
|
#18+
michaeldevpскорость такая - это нормально? хотя бы примерно. А что там в килобайтах получается? Сколько занимают те 300 записей в секунду? Я бы в качестве теста проверил запись отдельно, без запроса... И вывод данных запроса на тот же экран... Посмотрел время... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2011, 15:25 |
|
||
|
скорость выгрузки в CSV
|
|||
|---|---|---|---|
|
#18+
Не, все ж таки давайте поподробней, как открываете файл, как пишете, с камими флагами, на какое устройство. Какая скорость будет самого запроса, если не писать в файл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2011, 15:31 |
|
||
|
скорость выгрузки в CSV
|
|||
|---|---|---|---|
|
#18+
5,5 миллионов записей в csv-файле получилось 3,4 гигабайта. Лимитирует процесс не запись в файл, а запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2011, 15:37 |
|
||
|
скорость выгрузки в CSV
|
|||
|---|---|---|---|
|
#18+
michaeldevp5,5 миллионов записей в csv-файле получилось 3,4 гигабайта. 300 записей в секунду... Это вроде как 185КБ/с получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2011, 16:03 |
|
||
|
скорость выгрузки в CSV
|
|||
|---|---|---|---|
|
#18+
krvsa, да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2011, 16:09 |
|
||
|
скорость выгрузки в CSV
|
|||
|---|---|---|---|
|
#18+
Сейчас потестил простое копирование в Фаре - 25МБ/с... Т.ч. 185КБ/с это ну ооочень медленно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2011, 16:38 |
|
||
|
скорость выгрузки в CSV
|
|||
|---|---|---|---|
|
#18+
Точнее это Мбиты были - т.ч. делить на 8 = 3.1МБ/с ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2011, 16:40 |
|
||
|
скорость выгрузки в CSV
|
|||
|---|---|---|---|
|
#18+
krvsa, Причем тут фар. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2011, 16:41 |
|
||
|
скорость выгрузки в CSV
|
|||
|---|---|---|---|
|
#18+
michaeldevpПричем тут фар. Ну надо же с чем-то сравнить... Назовём скорость в Фаре "верхней границей" и будем стремиться её достичь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2011, 16:50 |
|
||
|
скорость выгрузки в CSV
|
|||
|---|---|---|---|
|
#18+
У меня вот это Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2011, 17:00 |
|
||
|
скорость выгрузки в CSV
|
|||
|---|---|---|---|
|
#18+
krvsa, У меня лимитирует не запись в файл, а чтение результатов запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2011, 17:43 |
|
||
|
скорость выгрузки в CSV
|
|||
|---|---|---|---|
|
#18+
michaeldevp, еще вариант для вашей версии, но на сложных классах не проверял: Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2011, 23:45 |
|
||
|
скорость выгрузки в CSV
|
|||
|---|---|---|---|
|
#18+
michaeldevp5,5 миллионов записей в csv-файле получилось 3,4 гигабайта. Лимитирует процесс не запись в файл, а запрос. 1. Если Вы уверены, что виноват запрос, то попробуйте его выполнить в Портале управления (или в SQL-менеджере, если у Вас Cache 5.0 или ниже) и зафиксируйте время выполнения. Если время будет близко в Вашему, то посмотрите план запроса - возможно оптимизатор пытается использовать индекс (что совершенно бессмысленно для полного перебора) - иногда добавление условия "(%ID > 0)" помогает уйти от использования индексов. 2. В указанной таблице есть вычислимые поля? В запросе Вы отбираете все поля, а вот что потом добавляете в файл - только Вам известно. Как вариант, попробуйте отбирать только одно поле и, соответственно, только его сохранять в файл - если скорость существенно возрастет, то значит проблема в каком-то поле. 3. Возможно также, что база сильно фрагментирована - это можно узнать, запустив проверку целостности данной базы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2011, 07:55 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=37417815&tid=1557652]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
158ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 466ms |

| 0 / 0 |
