一个项目中有多个表。
如A与B通过AID关联,B中有一些列设有表达式,如X.expression = Parent(AB).X等等
B与C通过BID关联,C表中也有一些表达式,如X.expression = Parent(BC).X
B与D通过BID关联,C与D通过CID关联,D表的X.expression = IIF([CID] is Null ,Parent(BD).X,Parent(CD).X)
但在实际使用时,发现一个问题。
就是A表的数据达到上万行,B表的数据可能有3万行,C表的数据可能有5万行,D表的数据可能也有3万左右的时候,启动系统奇慢无比。
即使在使用了加载的条件_identify is null,仍然效果不佳,大致测了一下,打开项目需要40秒左右。
初步分析了一下
1、是数据库设计不合理(比如将D表分开为BD和CD两个表,分别只做BD关联和CD关联)
2、表达式列太多?
3、表的加载顺序有问题?例如按ABCD的顺序加载表,或按DCBA的顺序加载表,效率也大不相同?
4、先把所有表的表达式列清空,待数据全部load之后,再重设表达式?而且表达式也要按表的关联的顺序来重设?
如何改进?
[此贴子已经被作者于2018/5/29 9:19:53编辑过]