select DEAL_DETAIL.*,DLSGoodRecBin.PorductBarCode from DEAL_DETAIL
LEFT OUTER JOIN
dbo.DLSGoodRecBin ON dbo.DEAL_DETAIL.PRODUCT_GUID = dbo.DLSGoodRecBin.GUID
where DEAL_DETAIL.shopId ='59cf59a98b84463aa1c1b0704a6c0dfd' and DEAL_DETAIL.DEAL_DATE <= '2015-4-23 23:59:59' and DEAL_DETAIL.DEAL_DATE >= '2015-03-31 00:00:00'
使用left查询很慢,需要8秒,如果使用inner查询就秒查,但是必须使用left连接,要把DEAL_DETAIL这张表的所以都要查出来。
DEAL_DETAIL有8万多数据,DLSGoodRecBin有5万的数据,请问应该怎么优化
------解决思路----------------------
DEAL_DETAIL.* 全表扫描了。
lz 看一下执行计划。 要快的话, DEAL_DETAIL上建个覆盖索引吧。
------解决思路----------------------
DEAL_DETAIL要在(shopId,DEAL_DATE)上有索引,并且该索引包含(PRODUCT_GUID)
DLSGoodRecBin要在(GUID)上有索引,并且该索引包含(PorductBarCode)