Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
为了补充商业软件的功能缺欠,我设计一个程序,从商业软件的数据库中读取数据,然后把数据的内容全部写到一组空表中,然后再进行计算处理,这样做是怕由于误操作导致原来商业软件中的数据被破坏。
我的问题是:在往空表中写数据时耗时太长,更新一次大约需要半个小时(大约10个表,相互之间有关联计算),这样很难做到随时更新。我的硬件系统是intel双核2G,1G内存,但是我看了一下,系统运算时CPU占用只到50%,内存占用只有800M,请各位专家诊断一下是硬件问题,还是算法问题,有没有提高速度的办法。
代码大至如下:
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
为了补充商业软件的功能缺欠,我设计一个程序,从商业软件的数据库中读取数据,然后把数据的内容全部写到一组空表中,然后再进行计算处理,这样做是怕由于误操作导致原来商业软件中的数据被破坏。
我的问题是:在往空表中写数据时耗时太长,更新一次大约需要半个小时(大约10个表,相互之间有关联计算),这样很难做到随时更新。我的硬件系统是intel双核2G,1G内存,但是我看了一下,系统运算时CPU占用只到50%,内存占用只有800M,请各位专家诊断一下是硬件问题,还是算法问题,有没有提高速度的办法。
1、为什么不在“商业软件的数据库”直接计算?
2、解决方法:直接导入数据,是不是快些?
加上两行会快一些:
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
如果速度还是不快,可以看看这个:
如何不安全,说说看?
我尝试直接导入数据,我的外部数据来自sq server2005数据库,数据源路径怎么设置?是链接字符串吗?