-
Уважаемые, подскажите , почему возникают проблемы при работе с базами ADS(Local server)? В таблице 3500000 записей. Открывается быстро, однако, когда даю команду Close - висит секунд 10-12. В чем дело? Есть такие-же проблемы и когда делаю SQL-запрос на удаление из базы некоторого кол-ва записей. Тоже выполняется запрос очень долго. Что я не так делаю?
-
> Есть такие-же проблемы и когда делаю SQL-запрос на удаление > из базы некоторого кол-ва записей. Тоже выполняется запрос > очень долго
Нету индекса.
> Открывается быстро, однако, когда даю команду Close - висит > секунд 10-12.
Про ADS - не знаю, что это такое, но скорее всего потому как СУБД - версионник.
-
> Нету индекса.
Индекс есть. Я не про поиск говорю, а про удаление
with TAdsQuery.Create(nil) do
try
AdsConnection := DM1.AdsConnection1;
ParamCheck := True;
SQL.Clear;
SQL.Add('DELETE FROM TirSL WHERE Tir = :p1');
Params[0].Value := tir;
ExecSQL;
SQL.Clear;
CLose;
finally
Free;
end;
> но скорее всего потому как СУБД - версионник.
Не понял, что это такое...
-
> [2] kyn66 © (15.12.08 15:44) > SQL.Clear; > CLose;
А зачем эти строчки? Что ты пытаешься закрыть?
-
> Индекс есть. Я не про поиск говорю, а про удаление
Прежде чем удалять, СУБД должна записи найти.
Индекс на таблице TirSL по полю Tir есть ?
Если сделать селект с таким условием - много записей вернет ?
SQL.Clear; CLose;
Эти строчки, действительно, бессмыслены.
-
Select все работает. Про удаление - это второй вопрос. Меня больше сейчас интересует почему виснет прога, точнее не виснет а работает так долго при закрытии таблицы?
procedure TTiragSLFrm.FormDestroy(Sender: TObject);
begin
Screen.Cursor := crHourGlass;
DM1.SvodTSLTbl.Close;
DM1.TirSLTbl.Close;
DM1.TrkTbl.Close;
Screen.Cursor := crDefault;
end;
Даже прищлось часики поставить.
-
> почему виснет прога, точнее не виснет а работает так долго > при закрытии таблицы?
Эти таблицы были открыты только на чтение? Или к ним еще применялись операции изменения? Может, просто изменения записываются на диск перед закрытием.
-
Изменения были. Однако я просто их открываю(открытие формы) и сразу форму закрываю, см.[5]/ Зависон сикунд 10-15. Могет на компоненте TAdsTable какие параметры убрать/поставить нужно. Ну чудо какое-то. Ладно бы при открытии(пока индексы настроятся, пока все занрузится...) А тут просто Close - и на те тормоза. Я отказываюсь понимать здравый смысл. Вразумите, плис.
-
Пробывал перед закрытием убирать привязку к индексам - все едино, тормоза.
|