特定的sql查询优化。慢动作

特定的sql查询优化。慢动作,sql,optimization,sql-server-2000,Sql,Optimization,Sql Server 2000,我有一个查询,它给出了我需要的结果,但执行速度非常慢。缓慢是因为[Contoso$项目分类账分录]表有约60万条记录。 请建议如何优化/简化此查询(如果可能),以及我需要哪些索引才能使其发挥最佳效果 DECLARE @TempTable TABLE ( Numeris varchar(20) ) INSERT INTO @TempTable (Numeris) SELECT No_ FROM [Contoso$Sales Line] WHERE [Document no_] = 'PP

我有一个查询,它给出了我需要的结果,但执行速度非常慢。缓慢是因为[Contoso$项目分类账分录]表有约60万条记录。 请建议如何优化/简化此查询(如果可能),以及我需要哪些索引才能使其发挥最佳效果

DECLARE @TempTable TABLE 
(
    Numeris varchar(20)
)
INSERT INTO @TempTable (Numeris)
SELECT No_
FROM [Contoso$Sales Line]
WHERE [Document no_] = 'PP03428'

SELECT I.No_, CASE WHEN 
           ISNULL(ROUND(CAST(SUM(ILE.[Remaining Quantity]) AS float), 2), 0) <
           (SELECT  ISNULL(SUM([Outstanding Quantity]), 0)
            FROM    [Contoso$Sales Line] SL
            WHERE   (SL.No_ = I.No_) 
                AND (SL.[Document type] = 1 OR SL.[Document type] = 2) 
                AND (SL.[DA4 eksportas] = 0) 
                AND (SL.Type = 2)
           ) 
        THEN 0 
        ELSE 
           ISNULL(ROUND(CAST(SUM(ILE.[Remaining Quantity]) AS float), 2) -
           (SELECT  ISNULL(SUM([Outstanding Quantity]), 0)
            FROM    [Contoso$Sales Line] SL
            WHERE   (SL.No_ = I.No_) 
                AND (SL.[Document type] = 1 OR SL.[Document type] = 2) 
                AND (SL.[DA4 eksportas] = 0) 
                AND (SL.Type = 2)), 0
           ) 
    END AS Kiekis
FROM [Contoso$Item] I 
LEFT OUTER JOIN [Contoso$Item Ledger Entry] ILE ON I.No_ = ILE.[Item No_]
WHERE I.No_ IN (SELECT Numeris FROM @TempTable)
GROUP BY I.No_
DECLARE@tentable
(
Numeris varchar(20)
)
插入@tentable(Numeris)
选择否_
来自[Contoso$销售行]
其中[文件编号]=“PP03428”
选择I.No_u2;,CASE WHEN
ISNULL(四舍五入(转换为浮动的总和[剩余数量]),2),0)<
(选择ISNULL(总和([未清数量]),0)
来自[Contoso$销售线]SL
式中(SL.No=I.No)
和(SL.[文档类型]=1或SL.[文档类型]=2)
和(SL.[DA4 eksportas]=0)
和(SL.Type=2)
) 
然后0
其他的
ISNULL(四舍五入(转换为浮动的总和[剩余数量]),2)-
(选择ISNULL(总和([未清数量]),0)
来自[Contoso$销售线]SL
式中(SL.No=I.No)
和(SL.[文档类型]=1或SL.[文档类型]=2)
和(SL.[DA4 eksportas]=0)
和(SL.Type=2)),0
) 
以基基基斯结束
来自[Contoso$Item]I
左侧外部联接[Contoso$项目分类账分录]文件位于I.No=文件上。[项目编号]
其中I.No uuin(从@tentable中选择Numeris)
分组号_

使用执行计划了解查询的执行情况,并了解查询为何如此缓慢。您可以在Contoso$Item表的No_uu列上添加索引,以避免使用fullscan表

[Contoso$Item]
是否在
No
上有索引?
[Contoso$Item分类账分录]
是否在
[Item No.]
上有索引?您能否将查询的执行计划添加到问题中?