2016-09-02 32 views
-2

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

+0

这是**高度依赖**您正在使用哪个实际的具体的**数据库系统** - 不同的供应商(Oracle,SQL Server,IBM等)以不同的方式实现 - 只是说'sql' doesn'帮助我们回答这个问题.... –

+0

谢谢。我编辑了我的问题。我正在使用Oracle SQL。 – stackoverflower

+0

检查执行计划 –

回答

0

索引用于访问数据,但不直接用于SORT/ORDER BY。作为数据库获取的数据集,它将根据ORDER BY子句进行排序。

对您的问题所以一般的答案是否定的:没有对排序性能没有影响

在某些情况下,该组已经可以预先排序(由于取顺序例如单个索引范围扫描将返回行按键排序)。在这种情况下,不需要排序,Oracle将在SQL执行计划中将其显示为NOSORT。