|
ADODB.Recordset медленно работает c SQL Server 2016
|
|||
---|---|---|---|
#18+
Коллеги, нужна ваша помощь. Не могу понять, почему Recordset отрабатывает очень медленно. 10 строк выводит за 5 секунд. 50 строк выводит за 25 секунд. 100 строк выводит за 60 секунд. Надо вывести 4 000 строк. Окончания работы макроса так и не дождался. Код: sql 1. 2.
На работе почти такой же скрипт выводит несколько сот тысяч строк за 1-2 минут. т.е. дело в каких-то настройках? На работе SQL Standard Edition 2014. Код: vbnet 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. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2020, 15:26 |
|
ADODB.Recordset медленно работает c SQL Server 2016
|
|||
---|---|---|---|
#18+
SpsaceMan, Вариантов много: 1) Включен пересчёт листа. Если на листе есть формулы, то после изменения ячеек, может быть долгий пересчёт. Рекомендую на время работы цикла установить ручной пересчёт листа и отключать перерисовку ячеек (что уже сделано, это хорошо, но обратно не включили). Если данные переносятся без изменения на лист, можно попробовать применить метод CopyFromRecordset и отказаться от чтения данных в цикле 2) Медленная сеть. Пробуйте читать данные в переменные/массив без вывода на лист, тогда увидим скорость чтения из сети, исключая проблемы с отрисовкой ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2020, 22:37 |
|
ADODB.Recordset медленно работает c SQL Server 2016
|
|||
---|---|---|---|
#18+
Вместо вот всего этого нужно использовать CopyFromRecordset, это быстрее на несколько порядков Доступ к каждой отдельной ячейке экселя - это ооооооочеь медленно ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2020, 00:13 |
|
ADODB.Recordset медленно работает c SQL Server 2016
|
|||
---|---|---|---|
#18+
VSVLAD, спасибо! Все взлетело после: Код: vbnet 1.
4 000 строк за 5 секунд. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2020, 01:12 |
|
ADODB.Recordset медленно работает c SQL Server 2016
|
|||
---|---|---|---|
#18+
SpsaceMan, ппц как медленно, это какого порядка сложность, что при 72000 ячеек целых 5 сек, по моему, это жопа я бы не дождался :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 12:57 |
|
ADODB.Recordset медленно работает c SQL Server 2016
|
|||
---|---|---|---|
#18+
Вот правильно пишут же - вместо всего вот этого: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
проще и быстрее так: Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 14:59 |
|
ADODB.Recordset медленно работает c SQL Server 2016
|
|||
---|---|---|---|
#18+
В плюс к вышесказанному Sheets("orders").Cells(1, 1) = "Номер заказа" Sheets("orders").Cells(1, 2) = "Номер отправления" Sheets("orders").Cells(1, 3) = "Принят в обработку" Sheets("orders").Cells(1, 4) = "Дата отгрузки" Sheets("orders").Cells(1, 5) = "Статус" Sheets("orders").Cells(1, 6) = "Сумма отправления" Sheets("orders").Cells(1, 7) = "Наименование товара" Sheets("orders").Cells(1, 8) = "id" Sheets("orders").Cells(1, 9) = "Артикул" Sheets("orders").Cells(1, 10) = "Итоговая стоимость товара" Sheets("orders").Cells(1, 11) = "Количество" Sheets("orders").Cells(1, 12) = "Склад отгрузки" Sheets("orders").Cells(1, 13) = "Регион доставки" Sheets("orders").Cells(1, 14) = "Город доставки" Sheets("orders").Cells(1, 15) = "Способ доставки" Sheets("orders").Cells(1, 16) = "Сегмент клиента" Sheets("orders").Cells(1, 17) = "Способ оплаты" Sheets("orders").Cells(1, 18) = "Changed" Можно попробовать заменить на Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
Использовать курсор брандспойт Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 11:24 |
|
|
start [/forum/topic.php?fid=60&fpage=3&tid=2154764]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 265ms |
total: | 381ms |
0 / 0 |