![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вставка в Oracle (ODAC) [D7]
maep © (2006-01-18 08:23:00)Граждане, поделитесь опытом.
Есть множество записей, которые необходимо вставить в табличку.
просто insert(...)
В настоящее время реализовано так:
ResultOraSQL.Prepare;
cbData.GoToFirst;
while not cbData.Eof do
begin
l := cbData.GetItem;
ResultOraSQL.ParamByName('mReq_req_id').AsInteger := req_id;
ResultOraSQL.ParamByName('mApp_id').AsInteger := l.GetFieldInt(0);
ResultOraSQL.ParamByName(....;
ResultOraSQL.Execute;
if k mod (search.index div 20) = 0 then
begin
FormGauge.RefreshCountWithDatim2(k,DatimCallToStr(strt));
OraSession.Commit;
end;
inc(k);
end;
OraSession.Commit;
ResultOraSQL.UnPrepare;
Скорость вставки — порядка 400 заисей в секунду Табличка простай, 15 полей, 1 индекс, 1 ключ — вроде не должно быть тормозов)
Мне кажется, тут что-то не так
Заранее спасибо!
evvcom (2006-01-18 08:38:00) [21]Попробуй определиться сначала, где тормоза. Т.е. напиши курсор на PL/SQL, возвращающий данные, аналогичные cbData, и скармливай из него данные запросу, аналогичному ResultOraSQL, точно так же построчно. Если скорость будет слабо отличаться, то приведенный тобой код, вообще ни о чем не говорит.
P.S. А cbData откуда данные берет? Не с того же оракла?