首页 新闻 会员 周边

请教:如何优化这几个查询较慢的ERP模块

0
悬赏园豆:50 [已解决问题] 解决于 2011-10-24 15:13

最近在尝试做公司内部ERP模块的优化,C/S的,其中几个模块打开的速度很慢

主要有以下几类模块:

1.台账类的模块,这类模块查询条件很多,关联的表比较多,而且查询条件很多支持模糊查询。

2.分析汇总类模块:这类模块一般分析一段时间内的数据,汇总分析,数据量还是挺大的

对于第一类模块,性能瓶颈可能在于关联表多,有些关联可能没有使用索引或者不能使用索引,另外,查询条件多,可能查询条件中的字段也没有使用索引,再加上使用了模块查询 %ff%
对于第二类模块,数据量比较大,汇总聚合的时间本就比较长,不太好优化,在不使用数据仓库的前提下,想的是能不能建一些中间计算表,每天晚上建立作业运算,然后模块直接从这个表取数就可以了,但老大说建的中间表太多的话,不好管理

身为菜鸟,表示鸭梨很大,请各位指点下,给小弟提供个思路
上述两种情况如何进行优化,或者通过其他的方式规避

JentleWang的主页 JentleWang | 初学一级 | 园豆:160
提问于:2011-10-20 13:14
< >
分享
最佳答案
0

1.查询条件多,模糊查询, 能做的就是把索引加上然后优化语句,其他的办法没有了.

2.汇总的话,我们一般的做法是,把每天的数据插入到一张历史表,然后对历史表聚合,这样就不会造成锁表的问题.

收获园豆:40
dearz | 小虾三级 |园豆:588 | 2011-10-21 09:09

1. 嗯,只能这样了,更变态的是业务同事一次查询一年的数据,台账模块也不是这么用的啊,一年数据I/O很大,网络传输也很大,不慢才怪

2. 是个方法,我还在想要不要加上with(no lock) 。不过每晚上算的话,实时性就没了

JentleWang | 园豆:160 (初学一级) | 2011-10-21 15:47

@Captain_Jack: 如果有些数据经常查询的话, 建议移动到历史表,不要在动态操作的表里面查询,

我们的表平均1秒会插入100条数据,所以针对这个表,我们不做任何操作,知道晚上12点做更新, 插入历史,然后针对历史表统计

dearz | 园豆:588 (小虾三级) | 2011-10-21 15:55
其他回答(1)
0

1,优化查询语句,2,不用中间表用视图

收获园豆:10
LCM | 园豆:6876 (大侠五级) | 2011-10-20 13:22

1. 我再尽力优化下吧

2. 用视图查询效率会高吗?

   您能再说的详细点吗?小弟菜鸟

支持(0) 反对(0) JentleWang | 园豆:160 (初学一级) | 2011-10-21 15:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册