我使用查询分析器,每秒最多可以往数据库中插入近16,000条记录.
而我使用Delphi开发的程序,使用ADOQuery控件插入数据库每秒最多只能插100条数据库,如何提高效率?
以下是我的Delphi代码,大家参谋参谋
LA := TADOQuery.Create(nil);
LA.Connection := ADOC;
LA.CommandTimeout := 0;
for I := 1 to 1000 do
LA.SQL.Add(Insert Into T_Insert (K) Values (10) );
LA.ExecSQL;
LA.Free;
或者
for I := 1 to 1000 do
begin
LA := TADOQuery.Create(nil);
LA.Connection := ADOC;
LA.CommandTimeout := 0;
LA.SQL.Add(Insert Into T_Insert (K) Values (10) );
LA.ExecSQL;
LA.Free;
end;
如何才能在单个数据库连接上,尽可能的提高插入数据库的效率?
谢谢各位了
你这个只是在实验吧!
既然有规则插入,那么可以把插入写在存储过程
在前台调用即可
for I := 1 to 1000 do
begin
...
LA.ExecSQL;
LA.Free;
..
end;
这样循环递交很容易当机
搂主应该进行批插入,而不是单条记录重复插入
不要每次插入数据都执行一次提交,批量提交比单次提交效率会高很多。
不过字符串长度有限 最多8000