|
|
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в таблицу MS SQL? Скажем, 100-300 тыс строк Данные именно из Делфи, в другом месте их нет построчные инсерты будут тормозить или не очень? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 09:04:45 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Пока ждать ответа с форума -- данные уже давно залились бы :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 09:26:00 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymx, может в текстовый файл, а потом bulk insert? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 10:25:51 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
JaDiПока ждать ответа с форума -- данные уже давно залились бы :-)мне не на один раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 12:15:07 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
http://www.sql.ru/forum/393155/optimizaciya-insert зы А о чем речь? Какие данные вставляются, какие индексы, какая скорость вставки, БД на хдд или ссд? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 13:49:54 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymx> как наиболее быстро залить данные из Delphi 7 andreymx> (датасет, массив) в таблицу MS SQL? Скажем, 100-300 тыс строк Пачками. Т.е. либо ArrayDML, либо всякие вариации BULK-инсерт на стороне сервера. Компоненты доступа какие используются? P.S. Хотя ради 300 тыс строк смысла особо париться нет, если это не очень частая и критичная по времени операция, конечно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 15:01:09 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
azsx> azsx Вы бы читали и думали, прежде чем отвечать и ссылки давать. При чём тут MySQL, если ТСу нужен MSSQL, какая ему дело до типа носителя данных на сервере (он может его не знать и это может меняться в ходе эксплуатации) и т.д. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 15:04:01 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам Пачками. Т.е. либо ArrayDML, либо всякие вариации BULK-инсерт на стороне сервера. Компоненты доступа какие используются? ado или что-то другое бесплатное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 19:49:17 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymx> ado Ну, он ArrayDML сам не умеет, поэтому пачками собирать запросы до макс.размера стейтмента и пулять на сервер. andreymx> или что-то другое бесплатное Ну FireDAC умеет. Умел ли AnyDAC - не помню. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 20:20:28 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Целевая бд очень нагружена, просят нагружать по минимуму ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 20:40:54 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
У MS SQL была утилитка, которая очень резво грузила данные из текстовых файлов (SSIS вроде, давно это было, уже не помню). Соответственно, можно выгрузить данные в текстовый файл, сжать его, отправить на сервер (ftp, smb, http), а на сервере поставить программку, которая примет файл, разархивирует, натравит на него SSIS, вернет результат и приберется за собой. В этом случае придется программировать много (особенно по сравнению с простой загрузкой на сервер), но база будет нагружена минимально. Второй похожий вариант - сформировать sql с insert-ами, загнать его на сервер и выполнить (тут опасайтесь long transaction, не знаю как эта хрень в MS SQL называется, когда транзакция, выполняемая слишком долго, считается зависшей и откатывается). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 21:12:44 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymxЦелевая бд очень нагружена, просят нагружать по минимуму Загружать по расписанию в ночное время. Загружать порциями. Загружать во временные таблицы. Выделить под загрузку отдельную роль с ограниченными ресурсами и грузить через нее, чтобы другие не тормозили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 22:29:22 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymx> Целевая бд очень нагружена, просят нагружать по минимуму У тебя это частая нерегулируемая операция или планируемая? Если второе - то логично вынести её на низконагруженное время, и соответственно вариации bulk-inserta. Если первое, то пачками. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2017, 00:38:53 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Разве insert - это тяжелая для сервера операция? Да еще если "параметризованный", и нет тяжелых индексов и триггеров на вставку. Я думал, проблема в нагрузке на сеть, и нужно побыстрее. А оно вон что. Если сервер нежелательно отвлекать на долгую загрузку, следует инсерты наоборот растянуть во времени, выполнять редко, исходя из требований. Другое дело - как скоро нужны будут результаты загрузки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2017, 01:53:10 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
работает, уже плюс очень медленно, минус 16.5 тыс строк заливает минуты 3 и больше Код: 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. arrFields - массив выбранных TField В Оракл через ArrayDML заливает за секунду Инфоpмация ---------- Данные записаны в БД , таблица "TMP_1" Количество записанных строк: 16845 Время закачки: 0,807 с. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 17:54:15 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
это само собой Код: pascal 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 18:00:09 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymx Код: pascal 1. С гридом случайно не связан? Курсор не бегает при этом по нему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 18:00:52 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymx, Гм, не совсем помню, как там в MSSQL, но кажется стартовать/коммитить транзакцию на каждый чих - излишество. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 18:00:55 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
DarkMasterandreymx, Гм, не совсем помню, как там в MSSQL, но кажется стартовать/коммитить транзакцию на каждый чих - излишество.там не на каждый чих, а на порцию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 18:01:43 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymx, А нет, сорри, поторопился, не усмотрел счетчик "записей в пачке"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 18:02:25 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
если отключить ADOQuery.ExecSQL;, то Время закачки: 0,707 с. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 18:02:54 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymxэто само собой Код: pascal 1. 2. Поиграйся с настройками курсора и направления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 18:03:41 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
wadmanandreymxэто само собой Код: pascal 1. 2. Поиграйся с настройками курсора и направления. Тот же ltBatchOptimistic ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 18:04:38 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
wadman, там обычный инсерт думаешь, может помочь? Код: sql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 18:06:09 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Инфоpмация ---------- Данные записаны в БД, таблица DBO.TMP_sap Количество записанных строк: 16845 Время закачки: 212,748 с. Скорость закачки: 79 строк/сек, 1663 полей/сек Дата: 19.09.2017 18:11:59 Код: pascal 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 18:13:47 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=127&tid=2041634]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
80ms |
get tp. blocked users: |
2ms |
| others: | 200ms |
| total: | 367ms |

| 0 / 0 |
