union多表的性能问题
我用union连接30多个表查询数据时,速度非常的慢,请问各位高手有没有什么优化的方法。 问题点数:5、回复次数:12Top
1 楼gentlePenguin(耕读专家之忧郁GG)回复于 2004-09-03 09:51:02 得分 5
不会吧?30多个表一起查?
表设计有问题,怎么会这样?
说说具体情况Top
2 楼chinaandys(降龙十八炒&&蛋炒饭)回复于 2004-09-03 10:02:15 得分 0
建立索引就可以了Top
3 楼sundoctor(教主)回复于 2004-09-03 10:06:44 得分 0
事实如此,30多个表,每个表的数据量都好几十万条,其实每个表的字段都是一样的,也许设计表的觉得数据都放在一个表里,数据量太大了,还有有时候只需要查询某一个表就行,但是有时候就要查询所有表,所以就得union 30多个表,太慢了,没办接受。Top
4 楼newdongkui(孤独的老乌鸦)回复于 2004-09-03 10:07:31 得分 0
1. 检查你的查询是否合理
2. 使用UNION ALL 不要用UNION
详细的内容贴贴看
Top
5 楼sundoctor(教主)回复于 2004-09-03 10:09:48 得分 0
有索引。Top
6 楼gentlePenguin(耕读专家之忧郁GG)回复于 2004-09-03 10:10:47 得分 0
几十万条 不算多啊,什么数据库?ORACLE的话小CASE了。
个人建议你重新建立表吧,你冗余已经太多了,30多个表,其实只要一个表就可以了!
建立好索引,查询应该不会太慢。
Top
7 楼sundoctor(教主)回复于 2004-09-03 12:49:15 得分 0
总共有250-300万条记录,这个表也不是我们建的,是客户原系统的表,我们是不能动的,是SQLSERVER数据库。Top
8 楼hdhai9451(☆新人类☆)回复于 2004-09-03 12:54:59 得分 0
確實是這樣,表多查詢速度慢,如果是那麼多,你可以分為兩次或三次用unionTop
9 楼guanshiyu123(就欺负你..宝)回复于 2004-09-03 13:22:01 得分 0
既然字段都是一样的, 用union all 能好一些,
如果还不能接受就再分次好了一点点来或者能减轻些心理压力,.Top
10 楼quansui(叶子)回复于 2004-09-03 13:43:51 得分 0
关注。Top
11 楼cxingh()回复于 2004-09-03 13:59:56 得分 0
upTop
12 楼chump(木人)回复于 2004-09-03 14:34:46 得分 0
把结构说说!
感觉设计的比较糟糕!Top




