Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共11 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:运算速度问题

1楼
zxyds2000 发表于:2011/12/21 10:12:00

    为了补充商业软件的功能缺欠,我设计一个程序,从商业软件的数据库中读取数据,然后把数据的内容全部写到一组空表中,然后再进行计算处理,这样做是怕由于误操作导致原来商业软件中的数据被破坏。

    我的问题是:在往空表中写数据时耗时太长,更新一次大约需要半个小时(大约10个表,相互之间有关联计算),这样很难做到随时更新。我的硬件系统是intel双核2G,1G内存,但是我看了一下,系统运算时CPU占用只到50%,内存占用只有800M,请各位专家诊断一下是硬件问题,还是算法问题,有没有提高速度的办法。

2楼
狐狸爸爸 发表于:2011/12/21 10:16:00

代码的质量好坏,速度相差可以上千倍。

帮助有一章讲述这个,建议从这一节开始看看:

http://www.foxtable.com/help/topics/2226.htm

 

 

3楼
zxyds2000 发表于:2011/12/21 10:31:00

代码大至如下:

        Dim QDdr As DataRow
        Dim QDi As Integer
        Dim QDj As Table = Tables("ProductStructures")
        With DataTables("C_WLQD")
           .DataRows.Clear() 

        End With
        For QDi = 0 To QDj.Rows.Count -1
           QDdr = DataTables("ProductStructures").DataRows(QDi) 

           Dim QDr As Row = Tables("C_WLQD").Rows.AddNew()
           QDr("母件编码") = QDdr("cPSPCode")
           QDr("子件编码") = QDdr("cPSCode")
           QDr("子件名称") = QDdr("存货名称")
           QDr("规格型号") = QDdr("规格型号")
           QDr("计量单位") = QDdr("计量单位")
           QDr("定额含量") = QDdr("直接数量")
           QDr("计划单价") = QDdr("计划单价")
           QDr("金额") = QDdr("金额")
        Next

4楼
lihe60 发表于:2011/12/21 11:06:00
以下是引用zxyds2000在2011-12-21 10:12:00的发言:

    为了补充商业软件的功能缺欠,我设计一个程序,从商业软件的数据库中读取数据,然后把数据的内容全部写到一组空表中,然后再进行计算处理,这样做是怕由于误操作导致原来商业软件中的数据被破坏。

    我的问题是:在往空表中写数据时耗时太长,更新一次大约需要半个小时(大约10个表,相互之间有关联计算),这样很难做到随时更新。我的硬件系统是intel双核2G,1G内存,但是我看了一下,系统运算时CPU占用只到50%,内存占用只有800M,请各位专家诊断一下是硬件问题,还是算法问题,有没有提高速度的办法。

1、为什么不在“商业软件的数据库”直接计算?

2、解决方法:直接导入数据,是不是快些?

5楼
zxyds2000 发表于:2011/12/21 11:11:00
在“商业软件的数据库”中直接计算不安全,我试试直接导入数据。谢谢!
6楼
狐狸爸爸 发表于:2011/12/21 11:13:00

加上两行会快一些:
 
Dim QDdr As DataRow
Dim QDi As Integer
DataTables("C_WLQD").StopRedraw
With DataTables("C_WLQD")
    .DataRows.Clear()
End With
For Each QDdr In DataTables("ProductStructures").DataRows
    Dim QDr As Row = Tables("C_WLQD").Rows.AddNew()
    QDr("母件编码") = QDdr("cPSPCode")
    QDr("子件编码") = QDdr("cPSCode")
    QDr("子件名称") = QDdr("存货名称")
    QDr("规格型号") = QDdr("规格型号")
    QDr("计量单位") = QDdr("计量单位")
    QDr("定额含量") = QDdr("直接数量")
    QDr("计划单价") = QDdr("计划单价")
    QDr("金额") = QDdr("金额")
Next
DataTables("C_WLQD").ResumeRedraw
 
如果速度还是不快,可以看看这个:

http://www.foxtable.com/help/topics/1935.htm

7楼
狐狸爸爸 发表于:2011/12/21 11:19:00

还可以看看:

 

http://www.foxtable.com/help/topics/2218.htm

 

8楼
lihe60 发表于:2011/12/21 11:53:00
以下是引用zxyds2000在2011-12-21 11:11:00的发言:
在“商业软件的数据库”中直接计算不安全,我试试直接导入数据。谢谢!

如何不安全,说说看?

9楼
zxyds2000 发表于:2011/12/21 14:13:00

我尝试直接导入数据,我的外部数据来自sq server2005数据库,数据源路径怎么设置?是链接字符串吗?

10楼
zxyds2000 发表于:2011/12/21 14:16:00
另外,导入格式怎么指定?
共11 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03320 s, 2 queries.