Performance 查询优化/性能

Performance 查询优化/性能,performance,sql-server-2008,tsql,Performance,Sql Server 2008,Tsql,我有一个sql查询执行得很糟糕,它导致了表扫描/IO峰值。请检查下面的脚本和执行计划,并让我知道它是否需要索引或重构查询本身。谢谢 -质疑 SELECT TOP 20 CustomerPrimaryExtID, Max(POSTimeStamp) AS TransactionDate, ExtLocationCode, 0 AS RedemptionAmount, 0 AS RedemptionCount,

我有一个sql查询执行得很糟糕,它导致了表扫描/IO峰值。请检查下面的脚本和执行计划,并让我知道它是否需要索引或重构查询本身。谢谢

-质疑

SELECT TOP 20
        CustomerPrimaryExtID,
        Max(POSTimeStamp) AS TransactionDate,
        ExtLocationCode,
        0 AS RedemptionAmount,
        0 AS RedemptionCount,
        TerminalNum,
        LogixTransNum,
        POSTransNum AS TransNum,
        0 AS DetailRecords,
        CustomerTypeID,
        PresentedCustomerID,
        PresentedCardTypeID,
        HHID,
        Replayed,
        0 AS TransContext,
        ISNULL(TransTotal, 0) AS TransTotal
    FROM TransHist AS TH WITH(nolock)
    WHERE 
        ( 
            ( 
                ( CustomerPrimaryExtID IN ( '' ) AND HHID IS NULL )
                OR HHID = '0000000250000007320' AND CustomerTypeID <> 1 
            )   OR ( CustomerPrimaryExtID = '0000000250000007320'   AND CustomerTypeID = 1 )
        )
        AND NOT EXISTS
        (
            SELECT
                    LogixTransNum
                FROM   TransRedemptionView AS TR2
                WHERE  
                    (
                        ( ( CustomerPrimaryExtID IN ( '' )  AND HHID IS NULL )  OR HHID = '0000000250000007320' AND CustomerTypeID <> 1 )
                        OR ( CustomerPrimaryExtID = '0000000250000007320'   AND CustomerTypeID = 1 )
                    )
                    AND TH.LogixTransNum = TR2.LogixTransNum
        )
    GROUP  BY
        CustomerPrimaryExtID,
        HHID,
        CustomerTypeID,
        PresentedCustomerID,
        PresentedCardTypeID,
        LogixTransNum,
        POSTransNum,
        TerminalNum,
        ExtLocationCode,
        Replayed,
        TransTotal
    ORDER  BY TransactionDate DESC

你在帖子中提到的执行计划在哪里我试图上传它作为一个图片,但它不工作。有没有其他方法可以上传到这里?啊,你可能还没有足够的声誉来做这件事,你必须上传到另一个网站并链接到这里,或者在文本中包含你的执行计划这里是执行计划的链接:这不是全部,对吗?好的,我看到成本分别为97%和3%,所以这可能是最重要的部分,但您也可以获得基于文本的执行计划。如果在management studio中启用SET STATISTICS PROFILE ON,则您将获得该计划的其他结果