我有一个带有 3 个数据字段的简单插入语句。Tag_ID 不是主键,也不是自动递增,时间戳将简单的 DateTime Now 保存为字符串,浮点值包含简单的 devid 计算。
sql server 实际上是本地的,但稍后它将位于不在本地网络中的另一台机器上。现在我得到 25,8 秒 10.000 个条目.. 我该如何改进呢?
我的代码如下所示:
procedure TForm1.testMssql(Datensaetze: integer);
var
i: integer;
before,after,result: real;
begin
before := GetTickCount;
for i:= 0 to Datensaetze do
begin
try
query.DataBase := conn;
query.UsePrimaryKeyAsKey:=false;
query.SQL.Text := 'insert into speedTest(TagID,timestamp,Value) values(:tag_id,:timestamp, :value)';
query.Params.ParamByName('tag_id').AsInteger := i ;
query.Params.ParamByName('timestamp').AsString := DateTimeToStr(Now);
query.Params.ParamByName('value').AsFloat := ((i*2) / 55);
query.ExecSQL;
SQLTransaction1.Commit;
except
on E: Exception do
ShowMessage(E.Message);
end;
end;
after := GetTickCount;
result := (after - before)/1000;
Memo1.Text := FloatToStr(result);
end;