使用未编制索引的第二列按两列排序

时间:2016-09-02 05:30:04

标签: sql oracle performance

我正在使用Oracle SQL。我是SQL的新手,我有下一个问题。如果我正在排序这样的行: “ORDER BY column1 ASC,第2列DESC”,当我的column1有索引时,但是column2没有。我知道当column1值在不同的行中相同时的情况很少会出现。所以我有下一个问题,它将如何影响性能?有多少条目具有相同的column1值是否重要?据我所知,如果我们有一个表,其中每个条目具有不同的column1值,那么排序将仅应用于column1,而不会导致任何性能问题,我是对的吗?

1 个答案:

答案 0 :(得分:0)

索引用于访问数据,但不能直接用于SORT / ORDER BY。当数据库获取数据集时,它将根据ORDER BY子句对其进行排序。

所以关于你的问题的一般答案是否:对SORT表现没有影响

在某些情况下,该集合可以已经预先排序(由于获取顺序,例如单个INDEX RANGE SCAN将返回按键排序的行)。在这种情况下,不需要排序,Oracle将在SQL执行计划中将其显示为NOSORT。