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:= to 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:= to 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:= to 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.
---------------------

Delphi 操作SQL 插入一万条数据 三种方式速度测试的更多相关文章

  1. Oracle 快速插入1000万条数据的实现方式

    1.使用dual配合connect by level create table BigTable as select rownum as id from dual connect by level & ...

  2. 绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来

    我用到的数据库为,mysql数据库5.7版本的 1.首先自己准备好数据库表 其实我在插入1000万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入100万条数据时候报错,控制台的信息如下: ...

  3. 使用hibernate在5秒内插入11万条数据,你觉得可能吗?

    需求是这样的,需要查询某几个表的数据,然后插入到另外一个表. 一看到需求,很多人都会用hibernate去把这些数据都查询出来,然后放到list中, 然后再用for循环之类的进行遍历,一条一条的取出数 ...

  4. 插入1000万条数据到mysql数据库表

    转自:https://www.cnblogs.com/fanwencong/p/5765136.html 我用到的数据库为,mysql数据库5.7版本的 1.首先自己准备好数据库表 其实我在插入100 ...

  5. 教你如何6秒钟往MySQL插入100万条数据!然后删库跑路!

    教你如何6秒钟往MySQL插入100万条数据!然后删库跑路! 由于我用的mysql 8版本,所以增加了Timezone,然后就可以了 前提是要自己建好库和表. 数据库test, 表user, 三个字段 ...

  6. python 全栈开发,Day94(Promise,箭头函数,Django REST framework,生成json数据三种方式,serializers,Postman使用,外部python脚本调用django)

    昨日内容回顾 1. 内容回顾 1. VueX VueX分三部分 1. state 2. mutations 3. actions 存放数据 修改数据的唯一方式 异步操作 修改state中数据的步骤: ...

  7. 监视EntityFramework中的sql流转你需要知道的三种方式Log,SqlServerProfile, EFProfile

    大家在学习entityframework的时候,都知道那linq写的叫一个爽,再也不用区分不同RDMS的sql版本差异了,但是呢,高效率带来了差灵活性,我们 无法控制sql的生成策略,所以必须不要让自 ...

  8. Struts2-从值栈获取list集合数据(三种方式)

    创建User封装数据类 public class User { private String username; private String password; public String getP ...

  9. PHP实现插入100万条数据优化

    第一种方法一条一条执行插入,结果会很慢 <?php header("Content-Type:text/html;charset=utf-8"); date_default_ ...

随机推荐

  1. MQ的常见应用场景

    MQ的常见的应用场景为:解耦,异步,流量削峰 在解耦场景中: 不使用MQ的耦合场景: 使用解耦的场景为: 异步的方式: 不使用MQ的同步高延时请求场景: 使用异步化之后的接口性能优化: 没有使用mq的 ...

  2. 忘记 MySQL 的 root 帐号密码该怎么办

    如果你忘了 MySQL 的 root 帐号密码,别担心,使用下面步骤就可以重设一个新密码: 首先停止 MySQL 服务 “/etc/init.d/mysql stop” 启动 MySQL 服务并屏蔽用 ...

  3. 解决Antimalware Service Executable CPU占用高的问题

    windows8/8.1,WIN10自带的安全软件Windows defender还不错,基本可以不用装其他杀毒软件了. 但是其进程Antimalware Service Executable 出现C ...

  4. 关于equals和hashcode问题

    默认情况下也就是从超类Object继承而来的equals方法与‘==’是完全等价的,比较的都是对象的内存地址,但我们可以重写equals方法,使其按照我们的需求的方式进行比较,如String类重写了e ...

  5. Java单个对象内存布局.md

    我们在如何获取一个Java对象所占内存大小的文章中写了一个获取Java对象所占内存大小的工具类(ObjectSizeFetcher),那么接下来,我们使用这个工具类来看一下Java中各种类型的对象所占 ...

  6. 解决 spring boot 线程中使用@Autowired注入Bean的方法,报java.lang.NullPointerException异常

    问题描述 在开发中,因某些业务逻辑执行时间太长,我们常使用线程来实现.常规服务实现类中,使用 @Autowired 来注入Bean,来调用其中的方法.但如果在线程类中使用@Autowired注入的Be ...

  7. 学习Spring-Data-Jpa(六)---spring-data-commons中的repository

    1.spring-data-commons项目 spring-data-commons项目是所有spring-data项目的核心,我们来看一下该项目下的repository包中的接口和注解. 2.Re ...

  8. ztree树默认根据ID默认选中该条数据

    functiongetZtree() { varsetting = { view: { expandSpeed: 100, selectedMulti: true, showLine: true, / ...

  9. [Schematics] 0. Schematics "Hello World"

    1. Install schematics cli: npm i -g @angular-devkit/schematics-cli@latest 2. Then run schematics to ...

  10. PHP流程控制之do...while循环的区别

    do...while与while的语法结构基本一样,也是一个布尔型循环,功能也基本一样.大理石平台价格 基本语法规定如下: do {    //代码块 } while (判断); do...while ...