使用UNION ALL从多个视图中提取数据的速度非常慢

时间:2017-06-07 20:50:37

标签: sql union

所以背景是我在会计系统中有8家公司。我对这8个已计算列的公司中的每一个都有看法,这些列位于不同的服务器上。然后,对于某些报告,我必须将所有单独的公司数据收集到一个部门范围的报告中。不是实际的查询,但它看起来像:

select c.customer, c.address, c.custnumber, l.avgdayspay, l.datelastpayment
from AcompanyCustomer as c INNER JOIN
         AcompanyCustLedger as l on c.custnumber=l.custnumber

UNION ALL

select c.customer, c.address, c.custnumber, l.avgdayspay, l.datelastpayment
from BcompanyCustomer as c INNER JOIN
         BcompanyCustLedger as l on c.custnumber=l.custnumber

等等。表现非常糟糕,需要45分钟才能完成。单独查询运行4-45秒。有没有更好的方法来写这个?我研究并看到了一些关于编写函数创建表和从表中的视图插入数据的东西,但我无法得到任何工作。不确定是否有人处理了这个问题,可能会看到某些东西或者知道我不知道的事情。感谢您提供的任何帮助。

0 个答案:

没有答案