很多因素都会影响启动速度,但是看不到你的设计,不知道什么原因。
我估计你的表态多,关联太多。
基本规则:
1、同样结构的数据,应该一个表保存,用动态加载来管理;不应该分开成很多表,有的人完全结构相同的表,分开20个表保存,想快都难。
2、控制关联的数量
3、不用默认打开全部窗口。
也可以看看下面的内容:
双向关联的影响
Foxtable的双向关联功能,使得相关数据信手拈来,为我们查看数据带来了极大的便利。
但是关联较多的时候,双向关联对于性能是有较大影响的,特别是打开项目的速度会明显变慢。
例如一个项目包括客户、产品、雇员、订单、订单明细五个表,这五个表建立了四个关联:
父表 |
子表 |
关联列 |
客户 |
订单 |
客户编号 |
雇员 |
订单 |
雇员编号 |
产品 |
订单明细 |
产品编号 |
订单 |
订单明细 |
订单编号 |
当我们将主表切换到客户表的时候,会出现5个Table,分别为:
Tables("客户")
Tables("客户.订单")
Tables("客户.订单.雇员")
Tables("客户.订单.订单明细")
Tables("客户.订单.订单明细.产品")
实际上,切换到任何一个主表,都会出现5个Table,用于显示相关联的数据,也就是说现在这个项目虽然只有5个Datatable,但是因为关联的存在,出现了25个Table。
打开项目的时候,要分别生成这25个Table,运行的过程中还要维护这25个Table,自然对性能会有影响,而且随着关联的增加,Table的数量可能会以平方数增长的。
我们可以关闭双向功能,减轻这种影响,在关闭双向关联的情况下,将主表切换到客户表的时候,会出现3个Table,分别为:
Tables("客户")
Tables("客户.订单")
Tables("客户.订单.订单明细")
将主表切换到订单表的时候,会出现2个Table,分别为:
Tables("订单")
Tables("订单.订单明细")
在关闭双向关联的时候,Table的数量将减少一半,所以性能会有所提升。
如果要关闭双向关联,可以在项目属性设置中,将双向关联属性设为False,然后重新打开项目即可。
表达式列的影响
表达式列的存在,特别是用表达式列引用父表数据,或用聚合函数统计子表数据时,会对批量修改数据、同步表、以及导入和合并数据等操作,带来较大的性能损失。
我们可以在执行此类代码之前,先清楚表达式,在执行结束后,再恢复表达式。
请参考:
D
ataTables("某表1").DataCols("某列1").Expression = ""
DataTables("某表1").DataCols("某列2").Expression = ""
DataTables("某表2").DataCols("某列1").Expression = ""
'原来的代码
DataTables("某表1").DataCols("某列1").Expression = "原来的表达式"
DataTables("某表1").DataCols("某列2").Expression = "原来的表达式"
DataTables("某表2").DataCols("某列1").Expression = "原来的表达式"
[此贴子已经被作者于2009-6-17 9:39:32编辑过]