Cra*_*lus 0 sql sql-server indexing performance sql-order-by
我不清楚以下内容:
假设我有一个表A,我已经在列上创建了一个索引X.
如果我根据列进行选择,结果将被排序,对吧?
但是,如果由于某种原因我做了一个选择后跟一个ORDER BY X(例如我不知道列被索引),SQL服务器会执行排序执行顺序访问还是会去使用索引?
如果您没有ORDER BY在SELECT查询中指定,那么就没有任何保证/没有确定性排序.
数据将被返回 - 但不保证任何订单(或者下次查询时它将以相同的顺序返回)
所以,如果你需要一个订单 -那么你必须指定一个ORDER BY在你的SELECT-它仅仅是为.
是的 - 如果有一个索引,如果它有意义 - 那么SQL Server查询优化器确实会使用该索引.但是涉及很多ifs和buts - 它可能 - 或者可能不会 - 使用索引 - 这完全取决于优化器的决定(这取决于很多因素 - 这里列出的太多了).
(这特别适用于我熟悉的SQL Server - 我不知道其他RDBMS如何处理这种情况)