当前位置: 代码迷 >> Sql Server >> 为什么执行速度会不同?该如何处理
  详细解决方案

为什么执行速度会不同?该如何处理

热度:18   发布时间:2016-04-27 16:02:56.0
为什么执行速度会不同?
数据库表StockInOutDtl有10万条记录,我在存储过程中执行下列语句只用了1秒:
            insert   into   @tmpStock
            SELECT     B.ArtID   ,   B.ArtDesc   ,   B.Units   ,   -B.Qty   as   Qty     ,   0,     A.ST  
            From   StockInOut   A   Left   Outer   Join   StockInOutDtl   B  
                      On     A.SheetID=B.SheetID
                      Inner   Join   RefArtList   C   On   B.ArtID=C.ArtID
            Where     A.IssueDate> [email protected]  
                                    And   [email protected]  

但没有 "Inner   Join   RefArtList   C   On   B.ArtID=C.ArtID "一行,即下列语句却要9秒:
            insert   into   @tmpStock
            SELECT     B.ArtID   ,   B.ArtDesc   ,   B.Units   ,   -B.Qty   as   Qty     ,   0,     A.ST  
            From   StockInOut   A   Left   Outer   Join   StockInOutDtl   B  
                      On     A.SheetID=B.SheetID
            Where     A.IssueDate> [email protected]  
                                    And   [email protected]

------解决方案--------------------
没有 "Inner Join RefArtList C On B.ArtID=C.ArtID "一行

要插入的记录要多一些
------解决方案--------------------
楼主可以看一下执行两个SQL语句后所影响的行数
------解决方案--------------------
没有关联条件结果积当然大
  相关解决方案