zoukankan      html  css  js  c++  java
  • Delphi 操作SQL 插入一万条数据 三种方式速度测试

    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, ADODB, StdCtrls;
    
    type
      TForm1 = class(TForm)
        Button1: TButton;
        btn1: TButton;
        ADOConnection1: TADOConnection;
        ADOQuery1: TADOQuery;
        ADOCommand1: TADOCommand;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
        procedure btn1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
        procedure ExecSql(SqlSentence:String);
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.ExecSql(SqlSentence:String);
    begin
        with ADOQuery1 do
        begin
          Close;
          SQL.Clear();
          SQL.Add(SqlSentence);
          ExecSQL;
        end;
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    var I:integer;
        SqlStr,MsgStr:string;
        ID,Name:string;
        Time:Cardinal;
    begin
      // 一条一套插入1万条数据 耗时大约86秒
      Time:=GetTickCount;
      for i:=1 to 10000 do
      begin
        Name:= QuotedStr('easyboot'+InttoStr(i));
        SqlStr:=Format(' insert into MyTest (Name) values (%s)',[Name]);
        ExecSql(SqlStr );
      end;
      Time:=GetTickCount-Time;
      MsgStr:=Format('Time %d ',[Time]);
      ShowMessage(MsgStr);
    end;
    
    procedure TForm1.btn1Click(Sender: TObject);
    var I,x:integer;
        SqlStr,MsgStr:string;
        ID,Name:string;
        Time:Cardinal;
    begin
      // 一次插入1万条数据 耗时大约19秒
      Time:=GetTickCount;
      for i:=1 to 10000 do
      begin
        Name:= QuotedStr('easyboot'+InttoStr(i));
        SqlStr:=SqlStr+Format(' insert into MyTest (Name) values (%s)  ',[Name]);
    
      end;
      ExecSql(SqlStr );
      Time:=GetTickCount-Time;
      MsgStr:=Format('Time %d ',[Time]);
      ShowMessage(MsgStr);
    end;
    
    procedure TForm1.Button2Click(Sender: TObject);
    var I,x:integer;
        SqlStr,MsgStr:string;
        ID,Name:string;
        Time:Cardinal;
    begin
      // 一次插入1万条数据 耗时大约4秒
      Time:=GetTickCount;
    
      for i:=1 to 10000 do
      begin
        Name:= QuotedStr('easyboot'+InttoStr(i));
        SqlStr:=SqlStr+ Format(' insert into MyTest (Name) values (%s)  ',[Name]);
    
      end;
      ADOConnection1.Open;
      ADOConnection1.BeginTrans;
      ADOCommand1.CommandText:=SqlStr;
      ADOCommand1.Execute();
      ADOConnection1.CommitTrans;
    
      Time:=GetTickCount-Time;
      MsgStr:=Format('Time %d ',[Time]);
      ShowMessage(MsgStr);
    end;
    
    end.
    --------------------- 
  • 相关阅读:
    [CSP-S模拟测试]:party?(霍尔定理+最小割+树链剖分)
    [CSP-S模拟测试]:marshland(最大费用可行流)
    [CSP-S模拟测试]:Revive(点分治)
    [CSP-S模拟测试]:Lighthouse(哈密顿回路+容斥)
    [CSP-S模拟测试]:Lost My Music(凸包)
    [CSP-S模拟测试]:God Knows(线段树维护单调栈)
    [CSP-S模拟测试]:Star Way To Heaven(最小生成树Prim)
    [CSP-S模拟测试]:gcd(莫比乌斯反演)
    [CSP-S模拟测试]:water(BFS)
    BZOJ3462 DZY Loves Math II 【多重背包 + 组合数】
  • 原文地址:https://www.cnblogs.com/m0488/p/10840180.html
Copyright © 2011-2022 走看看