Оптимизировать по скорости приложение работающее с Oracle через ODAC на Builder C++ 6.0

Тема в разделе "WASM.ZEN", создана пользователем EvilsInterrupt, 3 апр 2006.

  1. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    кратко, я написал проект используя связку Builder C++ 6.0 и ODAC.



    Приложение работает, так:

    На Хосте1,есть таблица1:
    Код (Text):
    1. id  NUMBER(10)
    2. param   NUMBER(7)
    3. value
    4. status  NUMBER
    5. datetime DATETIME
    Мое приложение, читает текущие данные из одного файла, смотрит в БД наличие param и datetime , если да то обновит, иначе добавит запись!

    Реализовал через:
    Код (Text):
    1. if( OraTable->locate(.....) == true)
    2. {
    3. OraTable->Edit();
    4. }
    5. else
    6. {
    7. OraTable->Append();
    8. }


    Параметров 58, и такие действия раз в 3 мин. усредненные.



    Так вот все вроде бы все рулез, но в момент когда программа начинает разговаривать с Oracle то процессор занят примерно на 98%, вобщем под сотню и где то на 20 сек.



    Подскажите пожалуйста, как можно оптимизировать и какие действия предприянять?



    ЗЫ:

    Завтра буду смотреть, а проиндексировал ли я param и datetime, если нет, то по идее должно помочь их индексация. А если проиндексированы, то это уже проблема для меня!

    Блин, ODAC,ADO медленнее будут. Вот и гадаю че делать то?
     
  2. Vasil

    Vasil Василь

    Публикаций:
    0
    Регистрация:
    7 янв 2006
    Сообщения:
    228
    Адрес:
    Ижевск
    Внутри цикла:

    push dword ptr 20

    call Sleep