Delphi 操作SQL 插入一万条数据 三种方式速度测试
2023-09-27 14:25:27 时间
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. ---------------------
相关文章
- 【数据库开发】C++测试redis中的publish/subscribe
- Confluence 6 SQL Server 测试你的数据库连接
- 接口压力测试:Postman【Postman通常用于做接口测试,同时也可以用于作为压力测试】、Jmeter【专门做压力测试】、Loadrunner、Apache AB、Webbench
- Jmeter中的几个重要测试指标释义
- 还在为测试发愁?10个开源的压力/负载测试工具
- LoadRunner接口测试标准模板
- 软件测试需求人才越来越多,走上测试道路的人却越来越少?
- 阿里疯传,手把手教你如何从0开始开展UI自动化测试?
- 腾讯3年,功能测试进阶自动化测试,送给在手工测试中迷茫的你
- 点工学自动化测试(二)----selenium IDE 功能扩展
- selenium+python —— 实现基本自动化测试
- OpenStack 互操作性测试认证,首批14家厂商通过
- 企业:怎样的渗透测试频率是合适的?
- sqlmap开源 测试sql注入的工具 各种参考链接
- tolua 有些功能可以用(经过测试)
- 从0到1精通自动化测试,pytest自动化测试框架,doctest测试框架(十四)
- 84.网络安全渗透测试—[SQL注入篇23]—[高级注入技巧-dnslog无回显注入]
- 83.网络安全渗透测试—[SQL注入篇22]—[高级注入技巧-位移注入]
- 81.网络安全渗透测试—[SQL注入篇20]—[Oracle+JSP-decode/BurpSuite布尔型盲注入]
- 72.网络安全渗透测试—[SQL注入篇11]—[SQLSERVER+ASP-报错注入]
- 69.网络安全渗透测试—[SQL注入篇8]—[MySQL+PHP-报错注入读写文件]
- 68.网络安全渗透测试—[SQL注入篇7]—[MySQL+PHP-报错注入详解&示例]
- 64.网络安全渗透测试—[SQL注入篇3]—[SQL注入-三大类型]
- mysql 5.7.15 vs mysql 5.6.31性能测试以及不同linux内核性能比较
- GET和POST测试(支持需要登录的接口调用:高级功能->填写cookie)
- 按捺不住,晚上在CENTOS上测试了C和CPP和GDB的基础之基础