Форум: "Базы";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
ВнизВызов Prepare для IBStoredProc не даёт эффекта Найти похожие ветки
← →
oleg_p (2004-12-23 11:29) [0]Есть хранимая процедура без выходных параметров, которая используется для записи данных в базу и вызывается много-много раз (сотни тысяч) сильно тормозя . Делаю так (здесь SP - TIBStroredProc):
SP.Prepare // один раз
....
// Следующий код повторяется многократно:
SP.ParamByName("ID").AsInteger := ID;
SP.ParamByName("ASEC").AsInteger := ASEC;
SP.ParamByName("ABASE_YEAR").AsInteger := ABASE_YEAR;
SP.ParamByName("AVALUE").AsFloat := AVALUE;
SP.ExecProc;
Если убрать Prepare - время выполнения кода остаётся абсолютно тем же. Почему ???
Заметил что, после вызова ExeProc всегда Prepared = False, независимо от того, каким оно было до вызова.
Прошу вашей помощи !!! или дайте ссылку где почитать
Работаю в Delpi 7 IBX 6 Firebird 1.0.2.908
← →
Соловьев © (2004-12-23 11:32) [1]TIBStroredProc кажись она глюкавая.. Может 2-й сервис пак даст улучшения, но ХП можно(а наверное и нужно) дергать через IBSQL
← →
Sergey13 © (2004-12-23 11:35) [2]2oleg_p (23.12.04 11:29)
ИМХО, ты не в ту сторону роешь. Имеет смысл переделать ХП так, что бы при однократном вызове он делала то, что сейчас делает за сотни тысяч раз.
← →
Johnmen © (2004-12-23 11:39) [3]>oleg_p
Моё имхо - это глюкавость IBX в целом и TIBStroredProc в частности.
← →
oleg_p (2004-12-23 12:45) [4]Заменил IBStoredProc на IBSQL - все заработало. СПАСИБО !
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.056 c