SqlServer执行计划
--1、取前10条-性能相同 select top 10 * from ServiceInvoke; --创建时间聚集索引扫描
select top 10 * from AdoLog; --主键ID聚集索引扫描
--2、根据聚集索引排序-性能提升
--创建时间聚集索引扫描,但是时间索引是已排序的,所以不需要再排序
select top 10 * from ServiceInvoke order by CreateTime desc;
--主键ID聚集索引全表扫描,然后根据时间字段排序
select top 10 * from AdoLog order by CreateTime desc;
--3、根据非索引排序-性能相同
--创建时间聚集索引扫描,然后根据排序字段排序
select top 10 * from ServiceInvoke order by IsDeleted desc;
--主键ID聚集索引扫码,然后根据排序字段排序
select top 10 * from AdoLog order by Message desc;
--4、根据聚集索引筛选,性能提升
--创建时间聚集索引查找
select top 10 * from ServiceInvoke where CreateTime > '2018-12-18';
--主键ID聚集索引扫描
select top 10 * from AdoLog where CreateTime > '2018-12-18' ;
--5、根据聚集索引筛选排序-性能提升
--创建时间聚集索引查找
select top 10 * from ServiceInvoke where CreateTime > '2018-12-18' order by CreateTime desc;
--主键ID聚集索引扫描
select top 10 * from AdoLog a where CreateTime > '2018-12-18' order by CreateTime desc;
--6、普通字段筛选聚集索引字段排序-对于排序性能消耗较大的情况下性能提升
--创建时间聚集索引扫描,然后条件过滤,但是不用排序
select top 10 * from ServiceInvoke where OutParam like '%330723196704072361%' order by CreateTime desc;
--主键ID聚集索引扫描,然后排序
select top 10 * from AdoLog where Message like '%330723196704072361%' order by CreateTime desc;
--7、多字段筛选聚集索引排序-性能提升
--创建时间聚集索引查找,然后条件过滤,但是不用排序
select top 10 * from ServiceInvoke where OutParam like '%330723196704072361%' and CreateTime > '2018-12-18' order by CreateTime desc;
--主键ID聚集索引扫描,然后排序
select top 10 * from AdoLog a where Message like '%330723196704072361%' and CreateTime > '2018-12-18' order by CreateTime desc;
--8、多字段搜索普通字段排序-性能提升
--创建时间聚集索引查找,然后条件过滤,排序
select top 10 * from ServiceInvoke where OutParam like '%330723196704072361%' and CreateTime > '2018-12-18' order by OutParam desc;
--主键ID聚集啥事扫描,排序
select top 10 * from AdoLog a where Message like '%330723196704072361%' and CreateTime > '2018-12-18' order by Message desc;
--9、统计行数
--主键非聚集索引扫描
select count(*) from ServiceInvoke
--主键非聚集索引扫描,但是查找行数明细减少,性能提升
select count(*) from ServiceInvoke s where s.CreateTime > '2018-12-19'
--创建时间聚集索引扫描,然后过滤
select count(*) from ServiceInvoke s where s.InputParam like '%152%'
--创建时间聚集索引查找,然后过滤-性能提升
select count(*) from ServiceInvoke s where s.CreateTime > '2018-12-19' and s.InputParam like '%152%'
--10、使用聚集索引和强制使用非聚集索引-根据聚合索引字段(创建时间)筛选出来的数据越少,查询开销提升越明显
--创建时间聚合索引查找
select count(*) from ServiceInvoke s where s.CreateTime > '2018-12-19' and s.InputParam like '%152%'
--主键ID非聚合索引扫描
select count(*) from ServiceInvoke s with(index=[PK_dbo.ServiceInvoke]) where s.CreateTime > '2018-12-19' and s.InputParam like '%152%'
SqlServer执行计划的更多相关文章
- SQLSERVER执行计划详解
序言 本篇主要目的有二: 1.看懂t-sql的执行计划,明白执行计划中的一些常识. 2.能够分析执行计划,找到优化sql性能的思路或方案. 如果你对sql查询优化的理解或常识不是很深入,那么推荐几骗博 ...
- 看懂SqlServer执行计划
在园子看到一篇SQLServer关于查询计划的好文,激动啊,特转载.原文出自:http://www.cnblogs.com/fish-li/archive/2011/06/06/2073626.htm ...
- SqlServer 执行计划及Sql查询优化初探
网上的SQL优化的文章实在是很多,说实在的,我也曾经到处找这样的文章,什么不要使用IN了,什么OR了,什么AND了,很多很多,还有很多人拿出仅几S甚至几MS的时间差的例子来证明着什么(有点可笑),让许 ...
- SQLServer 执行计划
http://www.cnblogs.com/fish-li/archive/2011/06/06/2073626.html#_label0 http://www.jb51.net/article ...
- SqlServer 中如何查看某一个Sql语句是复用了执行计划,还是重新生成了执行计划
我们知道SqlServer的查询优化器会将所执行的Sql语句的执行计划作缓存,如果后续查询可以复用缓存中的执行计划,那么SqlServer就会为后续查询复用执行计划而不是重新生成一个新的执行计划,因为 ...
- sqlser 2005 使用执行计划来优化你的sql
一:sqlserver 执行计划介绍 sqlserver 执行计是在sqlser manager studio 工具中打开,是检查一条sql执行效率的工具.建议配合SET STATISTICS ...
- 浅析SqlServer简单参数化模式下对sql语句自动参数化处理以及执行计划重用
我们知道,SqlServer执行sql语句的时候,有一步是对sql进行编译以生成执行计划, 在生成执行计划之前会去缓存中查找执行计划 如果执行计划缓存中有对应的执行计划缓存,那么SqlServer就会 ...
- Sql Server之旅——第十一站 简单说说sqlserver的执行计划
我们知道sql在底层的执行给我们上层人员开了一个窗口,那就是执行计划,有了执行计划之后,我们就清楚了那些烂sql是怎么执行的,这样 就可以方便的找到sql的缺陷和优化点. 一:执行计划生成过程 说到执 ...
- SQLServer查询执行计划分析 - 案例
SQLServer查询执行计划分析 - 案例 http://pan.baidu.com/s/1pJ0gLjP 包括学习笔记.书.样例库
随机推荐
- WPF 3D中多个模型如何设置某一个在最前?
原文:WPF 3D中多个模型如何设置某一个在最前? 问题:我们的模型包括导入的3D solid模型和axis坐标轴模型,当模型旋转的时候,3D会将axis挡住. 期望:axis一直在最前面,不会被3D ...
- otrs离线部署
OTRS5离线部署 参考地址:https://doc.otrs.org.cn/doc/manual/admin/stable/zh_CN/html/manual-installation-of-otr ...
- zlog 程序日志的库 交叉编译(Linux生成ARM库,观察执行步骤)
1. zlog 是个很好的写程序日志的库,功能比较强大,上手快. 2. 下载地址:https://github.com/bmanojlovic/zlog 3. cd 到文件夹下,对 autogen.s ...
- 持续集成及部署利器:Go(不要和Google的编程语言Go混淆了!)
Go是一款先进的持续集成和发布管理系统,由ThoughtWorks开发.(不要和Google的编程语言Go混淆了!)其前身为CruiseControl,是ThoughtWorks在做咨询和交付交付项目 ...
- C/C++ static用法
这篇文章没有太多的实际内容,简单记录下static的用法.顺便试一下用markdown来写文章. 1. 在函数中使用 我们都知道在一个函数中的变量是存储在栈区中,函数的每一次调用都伴随着变量的重新定义 ...
- Image Captioning 经典论文合辑
Image Caption: Automatically describing the content of an image domain:CV+NLP Category:(by myself, y ...
- 2018-4-25 1.如何在GitHub上新建一个新的项目并下载该项目及如何提交新的文件
- Win10《芒果TV》更新v3.5.2星玥版:修复电视台直播异常,优化添加下载提示
Win10版<芒果TV>在更新夏至版之后,根据收集到的热心用户反馈,全平台同步更新星玥版v3.5.2,修复电视台直播异常,优化添加下载提示,进一步提升使用体验. Win10版<芒果T ...
- Win10《芒果TV》商店版更新v3.2.5:新增会员频道,修复多处细节问题,小年快乐
听因乐不凡,尽在芒果TV,湖南卫视大型音乐竞技节目<歌手>,每周六晚22:30在芒果TV与湖南卫视同步直播,1月20日周五晚七点半,2016-2017湖南卫视<小年夜春晚>会员 ...
- 零元学Expression Blend 4 - Chapter 36 来玩捉迷藏吧!!!看看ScrollBar的Disabled与Hidden之差异
原文:零元学Expression Blend 4 - Chapter 36 来玩捉迷藏吧!!!看看ScrollBar的Disabled与Hidden之差异 本次要针对Disabled以及Hidden作 ...