|
|
|
Bulk insert из файла, открытого на запись другим процессом
|
|||
|---|---|---|---|
|
#18+
Суть задачи - закачка лог-файла стороннего приложения в ms sql. Сделано это было с пом. DTS, из которого вызывается хранимая процедура, содержащая тот самый bulk insert. Работало.. до того момента, как потребовалось докачивать лог "на лету", при работающей генерящей лог программе. Bulk insert - стал сообщать : ..file could not be opend.. Вот думаю - как грамотно энто дело обойти - и желательно лишь доработкой DTS-ника.. Приходят в голову мысли о копировании лог-файла и закачке из копии.. но его размер 400 Mb (3.5 млн строк), а для докачки зачастую нужны лишь последние 10 строк. Может есть способ быстро выдрать эти 10 строк в одельный файл с пом ф-ий DTS? Или таки придется писать внешнюю программу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2002, 12:01:24 |
|
||
|
Bulk insert из файла, открытого на запись другим процессом
|
|||
|---|---|---|---|
|
#18+
Уж не Прокся ли создает такой файл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2002, 12:45:51 |
|
||
|
Bulk insert из файла, открытого на запись другим процессом
|
|||
|---|---|---|---|
|
#18+
Вот думаю - как грамотно энто дело обойти - и желательно лишь доработкой DTS-ника Я проверяю с помощью FSO возможность открытия файла на запись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2002, 12:49:29 |
|
||
|
Bulk insert из файла, открытого на запись другим процессом
|
|||
|---|---|---|---|
|
#18+
2 Александр Спелицин : нет... страшный зверь "1С предприятие" :) 2 Glory : а дальше? скажем - открыть возможно. Bulk-то все равно не работает. Пришел вот к скрипту Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. воот... лопатит 400 Mb за 2 минуты - что есть долго... думаю написать OLE-объект на VC++ с той же начинкой.. может и поможет PS : у FSO случайно нет метода "перейти к строке № ..." ? а то я что-то не нашел.. или может есть какой-нить аналог FSO? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2002, 13:25:18 |
|
||
|
Bulk insert из файла, открытого на запись другим процессом
|
|||
|---|---|---|---|
|
#18+
а дальше? скажем - открыть возможно. Bulk-то все равно не работает Вы можете открыть текстовый файл на запись в то время как он уже открыт другим приложением на запись ?????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2002, 13:28:31 |
|
||
|
Bulk insert из файла, открытого на запись другим процессом
|
|||
|---|---|---|---|
|
#18+
2 Glory : ну ошибся :) невозможно его открыть на запись на f = fso.OpenTextFile(fn, 2, false); ругается "разрешение отклонено" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2002, 13:38:04 |
|
||
|
Bulk insert из файла, открытого на запись другим процессом
|
|||
|---|---|---|---|
|
#18+
у FSO случайно нет метода "перейти к строке № ..." ? а то я что-то не нашел.. или может есть какой-нить аналог FSO? Не, такого метода нет. Но, f.Read можно задать параметер - сколько символов читать. Если у вас строки фиксированной длины и номер строки известен, то f.Read(первое * второе) по идее переместит указатель туда, куда вам нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2002, 17:42:40 |
|
||
|
Bulk insert из файла, открытого на запись другим процессом
|
|||
|---|---|---|---|
|
#18+
Голосу за Си. Например лог-файл 227 Мб. Переход на последнюю строчку построчно с поиском по подстроке в качестве критерия идентификации строки занимает ~18 сек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2002, 19:57:28 |
|
||
|
Bulk insert из файла, открытого на запись другим процессом
|
|||
|---|---|---|---|
|
#18+
2 Glory : увы, строки произвольной длины.. 2 Andrew : именно этим сейчас и займусь.. Кстати, под ту же задачу была написана UDF вида Код: 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. Может ее тоже стоит переписать на VC++ ? Никто не подскажет - стоит ли возиться, будет ли заметный рост производительности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2002, 08:57:24 |
|
||
|
|

start [/forum/topic.php?fid=46&gotonew=1&tid=1818964]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
11ms |
get first new msg: |
6ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 410ms |

| 0 / 0 |
