C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Быстродействие, Быстродействие при работе через ОДБЦ
qweqwe
Отправлено: 06.09.2004, 09:28


Не зарегистрирован







Я наткнулся на какието грабли... Раздул
справочник товаров до 8 тысяч записей и прога начала тормазить при поиске. Поиск сделан таким образом...

void __fastcall TGoodsForm::Edit2Change(TObject *Sender)
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select * from GOODS_SUMMARY ");
ADOQuery1->SQL->Add("where Upper(id) like upper(_win1251'%" + Edit2->Text+ "%')");
ADOQuery1->Open();
}

сначала я начил строить индексы. Но тут до меня дошло что
этот запрос в ИБЭксперте выполняется почти моментально. Тоесть затык
происходит гдето между ИБСервером и программой. можно ли это опимизировать как-то? или это АДО и от этого не
деться? блин... нет времени переписывать всю прогу на другую
технологию... вот такие вот дела. Работаю через ОДБЦ...
AVC
Отправлено: 06.09.2004, 09:48


Ветеран

Группа: Модератор
Сообщений: 1583



ADO через ODBC для связи с Inerbas'ом — многовато "прокладок". Для начала лучше помучиться и перевести на "прямые" компоненты.
qweqwe
Отправлено: 06.09.2004, 10:04


Не зарегистрирован







ага... легко сказать.. проект не маленький.... около 80 юнитов... я все за месяц не переведу.. этож переписывать все придется
avc*
Отправлено: 06.09.2004, 10:34


Не зарегистрирован







Да. Работа грязная и неприятная, но поддается формализации. Не думаю, что это займет более двух рабочих дней.

Вернуться в Работа с базами данных в C++Builder