首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

【delphi】外循环5000次,内循环900次,循环插入数据到数据库,请教如何样才能提高速度

2014-04-30 
【delphi】外循环5000次,内循环900次,循环插入数据到数据库,请问怎么样才能提高速度【delphi】外循环5000次,内

【delphi】外循环5000次,内循环900次,循环插入数据到数据库,请问怎么样才能提高速度
【delphi】外循环5000次,内循环900次,循环插入数据到数据库,请问怎么样才能提高速度
================
for iCount :=0 to 10 do
begin
{外层循环代码}
for iCount2 :=0 to 100 do
begin
{内层循环代码}
end;
end;

我们假定外层循环代码(不包括内层代码)每执行一次需要 100ms, 循环 10 次要 1s。如果内层循环代码每执行一次要10ms,循环 1000 次也是 1s。由于外层循环代码耗费的时间比内层循环代码要多,有人也许会试图优化外层代码。事实上,整个循环体一共需要运行 11s(内层循环执行 10 次,每次 1s, 共 10s,再加上外层循环代码需要的 1s),如果将外层循环代码执行的时间减到哪怕 1ms,整断代码仍需要执行超过 10s 的时间;如果将内存循环代码的执行时间减到 5ms,整个执行时间则只需越 6s,可大大提高执行效率。因此,优化循环体的内存代码往往可大幅度提高程序的性能,

如果开启着编译器优化选项(默认开启),这些都有编译器给你优化,区别不大
[解决办法]
把数据写到文件,然后用数据库的导入功能从文件导入最快
比如sqlserver的bulk insert
[解决办法]
最好是先把你的数据计算好放到临时表,然后再插入数据库
[解决办法]
确定一下速度慢在哪儿, 正常理解应该是在数据库写入上:
如果是慢在数据库写入上, 建议启动数据库事物, 进行批量提交即可.

如果是在循环内还有别的处理过程, 应该尽量优化

热点排行