Additional
dbCAP
AnyDAC
ThinDAC
NCOCI8
Topic: замедляется работа (mysql)
замедляется работа (mysql)
Posted: 2008/08/04 04:08
 
ADQuery_1.Close;
ADQuery_1.SQL.Clear;
ADQuery_1.params.Clear;
ADQuery_1l.Params.Add;
ADQuery_1.Params[0].Name:='P0';
ADQuery_1.Params.Add;
ADQuery_1.Params[1].Name:='P1';
ADQuery_1.Params.Add;
ADQuery_1.Params[2].Name:='P2';
ADQuery_1.SQL.text:='select nomer from `'+ComboBox1.Text+'`.`'+table_name_to_insert+'` where opisanie=: P0 and rayon=: P1 and `data`=: P2 limit 1';

ADQuery_2.close;
ADQuery_2.sql.Clear;
ADQuery_2.Params.Clear;
ADQuery_2.Params.Add;
ADQuery_2.Params[0].Name:='P0';
ADQuery_2.Params.Add;
ADQuery_2.Params[1].Name:='P1';
ADQuery_2.SQL.Text:='select kommentariy from `'+ComboBox1.Text+'`.`'+table_name_to_insert+'` where opisanie=: P0 and rayon=: P1 and not (kommentariy = " ") limit 1';

ADQuery_Exec.SQL.Clear;
ADQuery_Exec.Params.Clear;
ADQuery_Exec.Params.Add;
ADQuery_Exec.Params[0].Name:='Opisan';
ADQuery_Exec.Params.Add;
ADQuery_Exec.Params[1].Name:='Rayo';
ADQuery_Exec.Params.Add;
ADQuery_Exec.Params[2].Name:='Dat';
ADQuery_Exec.Params.Add;
ADQuery_Exec.Params[3].Name:='Lin';
ADQuery_Exec.Params.Add;
ADQuery_Exec.Params[4].Name:='Number';
ADQuery_Exec.Params.Add;
ADQuery_Exec.Params[5].Name:='PageN';
ADQuery_Exec.Params.Add;
ADQuery_Exec.Params[6].Name:='Komment';

ADQuery_Exec.SQL.text:=
'insert into `'+ComboBox1.Text+'`.`'+table_name_to_insert+'` (opisanie,rayon,`Data`,Link,Number,Page,kommentariy) values (: Opisan,:Rayo,: Dat,:Lin,:Number,: PageN,:Komment)';





цикл
ADQuery_1.Close;
ADQuery_2.Close;

ADQuery_1.Params[0].AsString:=readystr;
ADQuery_1.Params[1].AsString:=Edit5.Text;
ADQuery_1.Params[2].AsDateTime:=currdate;

ADQuery_2.Params[0].AsString:=readystr;
ADQuery_2.Params[1].AsString:=edit5.text;

ADQuery_1.open;
ADQuery_1.First;

if ADQuery_1.RecordCount = 0 then
begin
ADQuery_2.open;
ADQuery_2.First;
if ADQuery_2.RecordCount > 0 then
begin
ADQuery_Exec.Params[6].AsString:=ADQuery_2.FieldByName('kommentariy').AsString;
end
else
begin
ADQuery_Exec.Params[6].AsString:=' ';
end;
ADQuery_Exec.Params[0].AsString:=readystr;
ADQuery_Exec.Params[1].AsString:=edit5.text;
ADQuery_Exec.Params[2].AsString:=DateTimeToStr(currdate,f);
ADQuery_Exec.Params[3].AsString:=pageavisourl;
ADQuery_Exec.Params[4].AsString:=Edit4.text;
ADQuery_Exec.Params[5].AsWord:=curr_page;
ADQuery_Exec.ExecSQL;
end;

цикл енд

нужно проверить и добавить тысяч 5000+ записей

к концу процедуры скорость падает раз в 5-10,
но если сделать переподключение, то скорость возвращается на начальный уровень..

что может быть не так?
куда рыть?

Спасибо.