|
|
|
VBScript - ,брыстрая перегрузка между двумя ODBC источниками
|
|||
|---|---|---|---|
|
#18+
Необходимо написать VBS скрипт для сервера сценариев Windows который будет быстро перегружать данные между двумя ODBC источниками. Если конкретно - есть XLS файл с одной таблицей - данные один-к-одному нужно перегрузить в таблицу Oracle. Я написал вариант что-то вроде построчного fetch из recordset-а и AddNew в другой recordset - но работает это неприемлимо медленно и для каждой строки делает COMMIT в оракле. Подскажите какие есть варианты для быстрой перегрузки данных целиком, одной пачкой, или просто как ускорить мой вариант. Возможно есть быстрые варианты без ADODB, пусть даже с использованием third-party компонентов - тоже интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 14:32 |
|
||
|
VBScript - ,брыстрая перегрузка между двумя ODBC источниками
|
|||
|---|---|---|---|
|
#18+
Оракловское соединение нужно открывать в режиме adUseClient, рекордсет с параметрами adOpenStatic, adLockBatchOptimistic, а по завершении его заполнения делать единственный UpdateBatch. Если в целевой таблице есть индексы, то можно попробовать добавлять во временную таблицу без индексов, а из нее в целевую insert'ом, возможно это будет быстрее. Вообще хотелось бы посмотреть на существующий скрипт и строку соединения с ораклом в частности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 09:54 |
|
||
|
VBScript - ,брыстрая перегрузка между двумя ODBC источниками
|
|||
|---|---|---|---|
|
#18+
AntonariyОракловское соединение нужно открывать в режиме adUseClient, рекордсет с параметрами adOpenStatic, adLockBatchOptimistic, а по завершении его заполнения делать единственный UpdateBatch. Если в целевой таблице есть индексы, то можно попробовать добавлять во временную таблицу без индексов, а из нее в целевую insert'ом, возможно это будет быстрее. Вообще хотелось бы посмотреть на существующий скрипт и строку соединения с ораклом в частности. Для теста я пока сделал просто генератор данных, без загрузки из Excel Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Както медленно всетаки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 12:55 |
|
||
|
VBScript - ,брыстрая перегрузка между двумя ODBC источниками
|
|||
|---|---|---|---|
|
#18+
Driver для DSN-а - Oracle in OraDb10_10g_home1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 12:56 |
|
||
|
VBScript - ,брыстрая перегрузка между двумя ODBC источниками
|
|||
|---|---|---|---|
|
#18+
CacheSize лучше убрать, а что за UpdateBatch 3 не понятно. Такой константы в AffectEnum нет. Да и не нужен там параметр — все записи новые. В остальном вроде все в порядке. Но для надежности лучше написать так: Код: plaintext 1. 2. Еще можно попробовать взять DTS от MSSQL 2000, он переливает данные заметно шустрее, чем подобные скрипты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 13:28 |
|
||
|
|

start [/forum/topic.php?fid=22&fpage=312&tid=1455582]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
106ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 197ms |
| total: | 399ms |

| 0 / 0 |
