做网站公司赚不赚钱,网站收录排名,最好的购物网站排名,ui网页设计技巧目录
1 前言
2 优化数据容器
3 开启事务插入数据
4 其他方面优化 1 前言
近期有一个需求是向数据库中插入excel文件中的10万多条数据#xff0c;接近70个字段。最初整个插入数据时间是大约40分钟#xff0c;经过优化调整后#xff0c;大幅优化为大约5分钟。这里简单介绍…目录
1 前言
2 优化数据容器
3 开启事务插入数据
4 其他方面优化 1 前言
近期有一个需求是向数据库中插入excel文件中的10万多条数据接近70个字段。最初整个插入数据时间是大约40分钟经过优化调整后大幅优化为大约5分钟。这里简单介绍一下采取的措施。
2 优化数据容器
这里的数据容器是指数据从外部读入后插入数据库之前暂时存放在什么地方。原来是以com方式调用excel程序打开excel文件读取数据到stringGrid中。这种方式速度慢容易出错。现在改用fpsDataset读取excel数据数据直接保存在数据集中。后面执行数据显示和插入数据到数据库中直接操作这个数据集就可以了非常快速高效。
前面介绍过这个fpSpreadSheet这个神器操作电子表格太方便了。 wsDataset : TsWorksheetDataset.create(self);wsDataset.FileName : UTF8ToSys(fn); // fn是excel文件名wsDataset.Open;
3 开启事务插入数据
开启事务方式后插入数据效率有数十倍的提升lazarus操作sqlite数据库使用事务的语法如下 DM.SQLTransaction1.EndTransaction;DM.SQLTransaction1.StartTransaction; 循环开始。。。。。。sql : 。。。。。。tryDM.SQLite3Conn.ExecuteDirect(sql);excepton E: Exception dobeginshowmessage(出错了7: E.ClassName / E.Message);memo1.append(ansiToUtf8(sql));memo1.append(插入记录失败sql语句);dm.SQLTransaction1.RollBack;exit;end;end; 。。。。。。循环结束DM.SQLTransaction1.Commit;
4 其他方面优化
如果数据量特别大就不需要在程序界面全部显示所有数据那样太浪费时间可以只显示100行或者1000行数据。