当前位置: 代码迷 >> Sql Server >> 拙笨的SQL语句求优化
  详细解决方案

拙笨的SQL语句求优化

热度:63   发布时间:2016-04-24 18:35:46.0
笨拙的SQL语句求优化
在WEB应用程序中,需要查两组数据,按理说,因为是两张表,所以应该分两次查,但我又不想多次查询,所以就用了union,把两次查询结果拼到了一起,但实在是太难看了,效率低下。所以还请各位大神看看应该怎么写才合适
SELECT  avg(il.UnitPrice) avgPrice,sum(il.Quantity)/12 avgNum,0,0
FROM Invoice i 
LEFT  JOIN InvoiceLineItem  il ON i.InvoiceId=il.InvoiceId 
LEFT JOIN Product p ON p.ProductId=il.ProductId 
LEFT JOIN Account a ON i.AccountId=a.AccountId 
WHERE datediff(m,InvoicedOn,getDate())<=12 AND p.productName='P2612430D2002F' AND a.accountName='230188' 
UNION
SELECT TOP 1 isNull(c__ycjh3_1,0)/1,isNull(c__ycjh3_2,0),isNull(c__ycjh3_3,0),isNull(c__ycjh3_4,0)  FROM e__jhmx e 
LEFT JOIN Product p ON e.c__wlh=p.ProductId
LEFT JOIN Account a ON c__kh=a.AccountId
 WHERE  p.productName='P2612430D2002F' AND a.accountName='230188'

------解决方案--------------------
引用:
Quote: 引用:

按照我的经历,这种索引建法非常不好
都是上一辈遗留下来的作风,想改也难了


你有qq不,方便的话,帮你看一下怎么优化
------解决方案--------------------
把非聚集索引全部删掉,然后执行几次你的语句,再用数据库性能优化顾问搞搞...
  相关解决方案