>> А ведь так хочеться ... динамически линковать External :)
> Раз прайсы "чужие", то и форматы у них как правило разные.
> Кто в твоем случаи их приводит к одному формату?
> У меня сделано так:
> Есть dll способная прочитать любой прайс и выдать его строки
> в предопределенном формате.

    Висит демон, проверяет обновления прайсов по
    ftp, http. По спец. шаблонам формирует файлики
    одинакового формата и дёргает SP в БД которая
    и занимается загрузкой. Дёргает в отдельной
    треде дабы не пригружать сервак..., а паралельно
    работает дальше ... идея была в следующем:
    пока SP грузит прайс, формируем новый с другим
    именем, файла, как только SP отработала - дёргаем
    её с  параметром на другой файл ...

    Сейчас работает через задницу т.к. external
    FireBird "отпускает" не сразу :(((((  я на этом
    теряю около 20% времени особенно на мелких
    прайсах. Получается что после каждого прайса
    мне надо сделать дисконнект, заменить файл и
    опять законектится :( иначе гад (FireBird) не
    отпускает файл external ...

> Есть прога которая пихает эти строки в базу.
> Обновление происходит в одном из двух режимов:
> 1. Удаляем старый прайс и все льем инсертом.

    В моём случае удалять низя :) да и insert-том
    долго :) как никак каждый божий день
    2-3 лимона записей

> Фибами это решается очень хорошо.

    А на *NIX ? Я там не спец :( только и научился чарез API
    открыть коннект=>выполнить query=>закрыть коннект :)
    Кстати здесь у меня теряется ещё больше времени на
    БОЛЬШИХ прайсах т.к., насколько я помню, тормоза
    на вставках начинаются с 100000 записей.
    Надобы сделать commit но в SP нельзя!
    Можно нарезать файлы по 100000 записей -
    но опять таки время на смену external файла
    замкнутый круг :(

> Так при диалапе от 9 до 14Кбит забираются десять прайсов(~250Kb зипы ~по
> 5000тысяч позиций) и
> пихаются в базу в локальной сетке около 15 мниут.

    Спасибо, за совет, но я, пока, наверное останусь на старом варианте.
    Да и обьёмы у меня побольше. При твоей скорости мои прайсы
    будут грузиться 12-15 часов что неприемлимо.
    Для сравнения сейчас грузиться за 3-5 часов и то много !
    Требование заказчика свести к 2 часам максимум,
    вот и выкручуюсь как могу, там чуть-чуть, здесь чуточку .... :(((((((


PS: просто смена файлов через update rdb$relations - идеальный вариант.
      не хотелось просто лишний коммит звать да и демона переписывать,
      ну слаб я в *NIX :(, хотелось всё в SP запихнуть в контексте одной
      транзакции. Сейчас пробую перед вызовом SP дёрнуть update 
rdb$relations
      если выйдет без переподключения к БД - это меня спасёт :)

 




--~--~---------~--~----~------------~-------~--~----~
-~----------~----~----~----~------~----~------~--~---

Ответить