如果不写Order By子句,会怎么样
我们都知道在T-SQL查询中,如果不恰当地使用了Order By子句,那么将严重影响到性能。很多优化顾问都会把尽量减少使用order by作为一条建议。
但又有人转念一想,如果我们在查询中不写Order By子句,那么出来的结果到底会怎么样排序呢?你要知道,即便再怎么样,数据结果集还是得有一个顺序的。那么这个无形的顺序是由什么决定的呢?
这个问题的答案得从两个方面来说
1. 如果表拥有聚集索引,那么就会按照聚集索引,升序(ASC)
2. 如果表不拥有聚集索引,那么就不好说了。实际上,这种情况下数据出来的顺序是随机的,它主要与SQL Server读取数据的顺序有关。
我们可以来看一个例子
我有一个测试的表,叫Orders,里面只有一个列。我随机输入了一些数字。【注意:我是故意让数字交错的】
如果,我们没有在表上面设计聚集索引,那么
SELECT [ID]
FROM [demo].[dbo].[Orders]
的结果就和上面是一样的。【也许在某些时候会不一样,但这个不太好测试,在表的数据很多或者用户并发很多的情况下可能会出现】
我觉得这个顺序通常会跟我们insert数据的先后有关系的。
但是,如果我们在表上面添加一个聚集索引,指定ID为键列
此时,你再执行同样的查询语句,却可以看到下面的结果
下面这个是执行计划
如果不写Order By子句,会怎么样相关推荐
- SQLite | Group By 和 Order By 子句
文章目录 1. Group by and Order by 1.1 Group Records 1.2 Ordering Records 1.3 Aggregate Functions 1.4 The ...
- cql oracle,Cassandra CQL中的Where和Order By子句
Cassandra的PRIMARY KEY有两个部分: >分区键 >群集密钥 PRIMARY KEY(partitionKey1,clusteringKey1,clusteringKey2 ...
- SQL基础---SQL ORDER BY 子句
SQL ORDER BY 子句 ORDER BY 语句用于对结果集进行排序. ORDER BY 语句 ORDER BY 语句用于根据指定的列对结果集进行排序. ORDER BY 语句默认按照升序对记录 ...
- 除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询...
执行sql语句: select * from ( select * from tab where ID>20 order by userID desc ) as a order by date ...
- oracle orber by,Oracle ORDER BY子句
本文概述 在Oracle中, ORDER BY子句用于对结果集中的记录进行排序或重新排列. ORDER BY子句仅与SELECT语句一起使用. 句法: SELECT expressions FROM ...
- 关于子查询中的order by子句
关于子查询中能否用order by子句,有以下两种情况: 第一种例如: select a.col1 from a where a.col2 in (select b.col2 from b order ...
- sql limit 子句_SQL Order by子句概述
sql limit 子句 In this article, we'll walk-through the concept of the SQL Order by clause and understa ...
- PgSQL——学习笔记八: ORDER BY 子句:排序 GROUP BY 语句:分组
PostgreSQL ORDER BY 语句:对一列或多列数据进行升序(ASC)或降序(DESC)排列. 在 PostgreSQL 中,ORDER BY 用于对一列或者多列数据进行升序(ASC)或者降 ...
- order by 子句 后面跟 case when
order by 子句 后面跟 case when 不再是排序 可以理解为分组排序(group by) 比如说,学生排队,凡是姓张的,我们给他们贴个标签"1",凡是姓李的,我们给他 ...
最新文章
- 2019微生物组—宏基因组分析专题培训开课啦!
- Codeforces Round #491 (Div.2)
- 编写一个爬虫类库——(一)想法
- 利用HttpWebRequest和HttpWebResponse做黑客注射工具
- [C++][基础]8_容器
- jfinal 普通java工程_JFinal getModel方法如何在java项目中使用
- react进行状态管理的几种方式
- 数据可视化之旅(五):常用图表对比
- 计算机信息专业致谢词,计算机专业毕业论文致谢词.doc
- 互联网周刊:草根创业选择题
- YonMaster开发者认证线上赋能培训班定档4月18日
- 手游外挂分类及原理介绍
- JavaScript 实现 标签页 切换效果
- 天猫精灵python开发_天猫精灵X1智能音箱使用感想
- OPPO Pad 2 参数 OPPOPad 2评测怎么样
- 乐观,积极,踏实,静心,排解
- Chrome for Mac(谷歌浏览器MAC版)提示您的连接不是私密连接,没有继续访问选项解决方法
- 马克思基本原理概论 单元综合测试(二)
- java语音验证码_Java代码示例_Java语音验证接口 | 微米-中国领先的短信彩信接口平台服务商...
- ssdb mysql_SSDB高性能NoSQL数据库
热门文章
- 给卡车穿上“隐身衣”,让自动驾驶车辆撞上它!这场自动驾驶比赛,比谁攻得快...
- 传孙正义领投滴滴无人车3亿美元新融资,此前软银宣布出售阿里股份等资产
- Latex学习笔记0
- 《VMware、Citrix和Microsoft虚拟化技术详解与应用实践》一1.1 虚拟化概述
- 切勿版本化Web API
- 理解“==”和“equals()”
- Google App Engine(GAE)入门教程翻译
- 博客网站没落的两个原因
- C语言学习笔记--预编译/宏定义/数组/参数传递/函数指针
- Nova — 虚拟机密码修改