首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

通过ADO更新mysql表,2600条,用了30秒,如何优化?多谢

2012-03-24 
通过ADO更新mysql表,2600条,用了30秒,怎么优化?急。谢谢通过ADO更新mysql表,2600条,用了30秒。该怎么写?代码

通过ADO更新mysql表,2600条,用了30秒,怎么优化?急。谢谢
通过ADO更新mysql表,2600条,用了30秒。该怎么写?
代码:
procedure TForm1.Button2Click(Sender: TObject);
 var
  I: integer;
 a,b ,c,s: string;
  wp: pYC_DEFINE;
  rfloat :string;

begin
  rfloat := '%.2f';
  with ADOQuery1 do
  begin
  ADOQuery1.Open;
  for I := 0 to gyclist.Count - 1 do
  begin
  ADOQuery1.sql.clear;
  wp := gyclist.Items[I];
  a:= InttoStr(wp^.m_wsite);
  b:= wp^.m_nno;
  c := IntToStr(wp^.m_wsite);
  ADOQuery1.SQL.Add('update as_yc_define set DATA_VALUE='''+c+''''+' where (YC_DATA_ID='''+b+''')');
  ADOQuery1.ExecSQL; //执行的这一句太慢
  end;
  end;
  ADOQuery1.Close;
end;

[解决办法]

探讨

引用:
刚才忘说了
for I := 0 to gyclist.Count - 1 do
你在循环里不断更新数据库效率确实很慢,考虑写个函数或存储过程一次执行


函数怎么写?因为数据库不是很在行,非常谢谢

[解决办法]
使用事务,批量更新

热点排行