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