Database ORDERBY子句在SQL中占用太多时间 选择dteRun, 当coalesce(nPriorityCode,0)

Database ORDERBY子句在SQL中占用太多时间 选择dteRun, 当coalesce(nPriorityCode,0),database,join,Database,Join,时,dteRun列上可能没有索引。如果要对列执行快速排序,则需要索引。在dteRun列上可能没有索引。如果你想对一列进行快速排序,它需要一个索引。它需要对你的排序依据子句中的列进行索引,最好是按相同的顺序。它需要对你的排序依据子句中的列进行索引,最好是按相同的顺序。当你写问题时,在文本区域下方有一个预览。在发布你的问题之前,值得一看,以确保它被正确标记。发布之后,还值得一看,事情看起来仍然不错。有关标记内容的正确方法,请参阅文本区域上方的[?]链接,或者参阅文本区域右侧提供的快速格式化提示。你在

时,
dteRun
列上可能没有索引。如果要对列执行快速排序,则需要索引。

dteRun
列上可能没有索引。如果你想对一列进行快速排序,它需要一个索引。

它需要对你的排序依据子句中的列进行索引,最好是按相同的顺序。

它需要对你的排序依据子句中的列进行索引,最好是按相同的顺序。

当你写问题时,在文本区域下方有一个预览。在发布你的问题之前,值得一看,以确保它被正确标记。发布之后,还值得一看,事情看起来仍然不错。有关标记内容的正确方法,请参阅文本区域上方的[?]链接,或者参阅文本区域右侧提供的快速格式化提示。你在问题上投入的精力越多,答案就越好。当你写问题时,在文本区域下方有一个预览。在发布你的问题之前,值得一看,以确保它被正确标记。发布之后,还值得一看,事情看起来仍然不错。有关标记内容的正确方法,请参阅文本区域上方的[?]链接,或者参阅文本区域右侧提供的快速格式化提示。你对问题投入越多,答案就越好。我在三个字段上共享了索引,其中一个是dteRun(日期类型),另两个是日期类型和数字类型。我应该为dteRun使用spepate索引吗?是的。复合索引在这里没有帮助。@Ernest Friedman Hill我有另一个查询,它使用复合索引,如dterun和tmerun Order By子句。现在,如果我对dterun和tmerun使用单独的索引,上述情况下的效率是否会受到影响???我在三个字段上共享了索引,其中一个是dterun(日期类型),另两个是日期类型和数字类型。我应该为dteRun使用spepate索引吗?是的。复合索引在这里没有帮助。@Ernest Friedman Hill我有另一个查询,它使用复合索引,如dterun和tmerun Order By子句。现在,如果我对dterun和tmerun使用单独的索引,上述情况下的效率是否会受到影响????
SELECT     dteRun,                 
CASE WHEN coalesce(nPriorityCode,0) <= 0 THEN 3
               ELSE nPriorityCode
               END AS nPriorityCode,
               CASE WHEN sCommand IN ('DiaryWF','XC_Reminder') THEN '*'
               ELSE ''
               END as Alert,
               sParentRef,
               nWorkflowTypeCode,
               sSubjectName,
               sDescription,
               sUniqueRef,
               sUserInfo,
               sUserInfo2   
FROM    AuroraTasksDiaryView ad
    INNER JOIN   UserAuthority
         ON UserAuthority.UserName = ad.sOwningUser
         AND ad.sOwningUser  = 'ammonsd'  AND  ad. nErrorCode = -1
         AND ad.sExcludedUser <>   ad.sOwningUser
         AND UserAuthority.FunctionCode = ad.sFunctionCode
        AND ( (UserAuthority.LowerBound <=  ad.nTaskValue
        AND UserAuthority.UpperBound >=  ad.nTaskValue)
        OR ad.sFunctionCode = 'RTS')
        AND  RowNum <= 100
        ORDER BY dteRun