|
|
|
Длительный экспорт больших объемов данных 1С-> MSSQL
|
|||
|---|---|---|---|
|
#18+
Всем привет! Очередная задача по экспорту данных из 1С в таблицы MS SQL. Программист 1С формирует пакетные запросы типа Код: plaintext 1. 2. 3. 4. 5. 6. При запуске команды через ADODB.Command вставка одного пакета отрабатывает 25 секунд. При запуске аналогичного пакета на сервере в окне Management Studio запрос отрабатывает 1 секунду. Куда копать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2010, 14:10 |
|
||
|
Длительный экспорт больших объемов данных 1С-> MSSQL
|
|||
|---|---|---|---|
|
#18+
Полечилось установкой размера пакета в 50 строк. Экспорт ускорился с 20 минут до 50 секунд! Всем спасибо! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2010, 14:31 |
|
||
|
Длительный экспорт больших объемов данных 1С-> MSSQL
|
|||
|---|---|---|---|
|
#18+
По умолчанию в ADO стоит режим AUTOCOMMIT = ON , поэтому после каждого insert дается команда COMMIT. Для подавления данного режима надо принудительно давать команды Connection.Execute("BEGIN TRANSACTION"); Connection.Execute("set implicit_transactions off"); на сервер уйдет BEGIN TRANSACTION set implicit_transactions off и уже в конце всех пакетов посылать Connection.Execute("Commit"); а лучше всего инсертить записи без union друг за другом BEGIN TRANSACTION set implicit_transactions off insert into table select 1,2,3 insert into table select 4,5,6 commit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2010, 22:56 |
|
||
|
|

start [/forum/topic.php?fid=28&msg=36928823&tid=1521869]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
82ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 247ms |
| total: | 425ms |

| 0 / 0 |
