将文本文件中的数据逐行写入数据库,CPU显示100%占用,能提高效率吗?

dhb 2003-11-11 04:51:25
有100多个文本需要导入数据库,在导入数据时,本来每导入一个文本文件就在文本框作显示,但实际上程序根本就是一直在执行query的insert语句;运行其他程序均十分慢,是否必须以多线程来解决此情况,能否每简单方式解决,使CPU效率降下来
...全文
80 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
大文 2003-11-11
  • 打赏
  • 举报
回复
必须用多线程,我遇到过此问题
outer2000 2003-11-11
  • 打赏
  • 举报
回复
要想使CPU下降,我看你要牺牲导入的时间了;
可在循环中用SLEEP(100);
zhxfzhxf1 2003-11-11
  • 打赏
  • 举报
回复
我想多线程无助。
改进
1。打开文本文件一行一行的取出
——〉一次全部读到,之后再进行添加。
2。使用QUERY.Prepare.

条件:
1。文件不能过大,如超过数M。(具体大小依物理内存而定,此处仅举例)。在超过数M后,可以分次读取,但始终不要一行一行地读取。
2。添加语句相同结构,加入到相同的表中去。

如果能应用上述两点改进,你的程序将会极大地提高效率。

另外,在长时间执行添加过程中,可以在循环中,加入如下语句。
for i:=0 to 999999 do
begin
...
Applicatin.ProcessMessage; // 加入此语句
end;

liyangyao970 2003-11-11
  • 打赏
  • 举报
回复
用一个线程呢?
你试试吧
dhb 2003-11-11
  • 打赏
  • 举报
回复
打开文本文件一行一行的取出,然后利用QUERY控件写入数据库;但程序象是当机一样,但实际在运行且占用CPU资源高,达到100%

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧