`
dengyll
  • 浏览: 94741 次
社区版块
存档分类
最新评论

聚类索引要不要加 order by

阅读更多

数据库要不要加order by给大家两个例子一看就知道了

[sql] view plaincopy
CREATE TABLE Beatles  
  
     (LastName varchar(20) NOT NULL PRIMARY KEY CLUSTERED,  
  
      FirstName varchar(20) NOT NULL UNIQUE NONCLUSTERED);  
  
INSERT INTO Beatles (LastName, FirstName)  
  
SELECT 'Lennon', 'John'  
  
UNION ALL  
  
SELECT 'McCartney', 'Paul'  
  
UNION ALL  
  
SELECT 'Harrison', 'George'  
  
UNION ALL  
  
SELECT 'Starr', 'Ringo';  
  
SELECT LastName FROM Beatles;  
  
DROP TABLE Beatles;  
  
go  
  
   
  
LastName  
  
--------------------  
  
Harrison  
  
Lennon  
  
McCartney  
Starr  
[sql] view plaincopy
CREATE TABLE Stones  
  
     (LastName varchar(20) NOT NULL PRIMARY KEY CLUSTERED,  
  
      FirstName varchar(20) NOT NULL UNIQUE NONCLUSTERED);  
  
INSERT INTO Stones (LastName, FirstName)  
  
SELECT 'Jagger', 'Mick'  
  
UNION ALL  
  
SELECT 'Jones', 'Brian'  
  
UNION ALL  
  
SELECT 'Richards', 'Keith'  
  
UNION ALL  
  
SELECT 'Watts', 'Charlie'  
  
UNION ALL  
  
SELECT 'Wyman', 'Bill';  
  
SELECT LastName FROM Stones;  
  
DROP TABLE Stones;  
  
go  
  
   
  
LastName  
  
--------------------  
  
Wyman  
  
Jones  
  
Watts  
  
Richards  
  
Jagger  
 第一个表没有问题,输出即使没加 order by 也能按照正常输出,但是第二个表却是乱序,为什么那? 


 

答案就在这个执行计划里,所以,无论何时不要忽略优化器的选择,要不然诡异的现象就会时有发生,另外你都已经有了聚类索引,多加一个order by会死人啊?效率会低啊?我说我自己。

分享到:
评论

相关推荐

    sql索引.docx

    经常被查询的列、用于WHERE子句、ORDER BY、GROUP BY和DISTINCT的列也应该建立索引。此外,复合索引的构建要考虑字段的使用频率,最常使用的字段应放在索引的前面。然而,对于重复值多、更新频繁、数据类型为text、...

    MATLAB实现K-means聚类

    % lower 把字符串变为小号字母 strmatch 为字符串找到一个合适的匹配,并返回对应的索引 i = strmatch(lower(distance), distNames); if length(i) > 1 % 大于1刚至少有一种距离 error(sprintf('Ambiguous ''...

    物理数据库设计PPT学习教案.pptx

    在选择索引的策略上,一些通用的指导原则包括:不为小表创建索引,为主键自动或手动创建索引,为经常用于检索、连接条件、ORDER BY、GROUP BY或排序操作的列创建二级索引,以及考虑基于外键的访问需求。此外,还应...

    mysql经典50题_大数据_mysql经典50题_mysql经典五十题_hive_

    - **排序(ORDER BY)与分页(LIMIT)**:对查询结果进行排序和分页,以提高用户体验。 3. **数据插入与更新** - **INSERT语句**:如何向表中插入新的行。 - **UPDATE语句**:修改已存在的记录。 - **DELETE...

    数据分析(如excel、powerBI、python、R语言或其他数据分析工具)面试题.pdf

    - **常见操作**: SELECT, JOIN, GROUP BY, ORDER BY 等。 - **用途**: 从数据库中提取和分析数据。 **3. SAS 与 SPSS** - **SAS**: 强大的数据处理能力、广泛应用于金融、医疗领域。 - **SPSS**: 用户界面友好、...

    Spark_Course

    3. 转换与聚合:DataFrame支持复杂的SQL查询,如JOIN、GROUP BY、HAVING、ORDER BY等。 五、PySpark中的数据转换与预处理 1. 数据清洗:处理缺失值、异常值,使用fillna(), dropna(), replace()等函数。 2. 特征...

Global site tag (gtag.js) - Google Analytics