有100多个文本需要导入数据库,在导入数据时,本来每导入一个文本文件就在文本框作显示,但实际上程序根本就是一直在执行query的insert语句;运行其他程序均十分慢,是否必须以多线程来解决此情况,能否每简单方式解决,使CPU效率降下来

解决方案 »

  1.   

    打开文本文件一行一行的取出,然后利用QUERY控件写入数据库;但程序象是当机一样,但实际在运行且占用CPU资源高,达到100%
      

  2.   

    我想多线程无助。
    改进
    1。打开文本文件一行一行的取出
    ——〉一次全部读到,之后再进行添加。
    2。使用QUERY.Prepare.条件:
    1。文件不能过大,如超过数M。(具体大小依物理内存而定,此处仅举例)。在超过数M后,可以分次读取,但始终不要一行一行地读取。
    2。添加语句相同结构,加入到相同的表中去。如果能应用上述两点改进,你的程序将会极大地提高效率。另外,在长时间执行添加过程中,可以在循环中,加入如下语句。
    for i:=0 to 999999 do
    begin
      ...
      Applicatin.ProcessMessage;   // 加入此语句
    end;
      

  3.   

    要想使CPU下降,我看你要牺牲导入的时间了;
    可在循环中用SLEEP(100);