sql执行顺序与性能优化小技巧(一)

关于sql条件匹配对执行效率影响测试
首先,创建一个标量函数
create function ff_test()
returns int
as
begin
declare @i int=0
while(@i<100000000)
set @i+=1
return @i
end
其次,选定随意一张表,这里使用业务表mt_delegate
观察如下两种情形
1. select * from mt_delegate where procid=-1 or dbo.ff_test()>10000
2. select * from mt_delegate where dbo.ff_test()>10000 or procid=-1
结果是where条件语句的次序不会对执行产生影响,明显sql引擎对where条件已做优化
再观察如下情形
1.------------------------------------------------------------------------------------------------
 select a.* from dbo.mt_delegate a 
            inner join dbo.mt_delegate b on a.procid=b.procid and (dbo. ff_test()>10000 or  
 a.activityid=-1)
2.------------------------------------------------------------------------------------------------
  select a.* from dbo.mt_delegate a 
            inner join dbo.mt_delegate b on a.procid=b.procid and ( a.activityid=-1 or  
dbo. ff_test()>10000 )
结果,1情形查询明显效率低下,而2情形很快出结果,由此推定SQL连接查询条件执行是按照由左向右顺序比对,而非一些文章所说右匹配
结论,SQL查询连接查询条件和where条件对条件的序列要求不同,连接查询建议将大概率条件置于左侧
sql执行顺序与性能优化小技巧(一)的更多相关文章
- .NET性能优化小技巧
		
.NET 性能优化小技巧 Intro 之前做了短信发送速度的提升,在大师的指导下,发送短信的速度有了极大的提升,学到了一些提升 .NET 性能的一些小技巧 HttpClient 优化 关于使用 Htt ...
 - sql语句执行顺序与性能优化(1)
		
一.首先我们看一下mysql的sql语句的书写顺序 . select--distinct--from--on--where--group by--having--聚合函数cube.rollup--or ...
 - How Javascript works (Javascript工作原理) (十一) 渲染引擎及性能优化小技巧
		
个人总结:读完这篇文章需要20分钟,这篇文章主要讲解了浏览器中引擎的渲染机制. DOMtree ----| |----> RenderTree CSSOMtree ----| ...
 - JavaScript 工作原理之十一-渲染引擎及性能优化小技巧
		
原文请查阅这里,略有删减,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland. 本系列持续更新中,Github 地址请查阅这里. 这是 JavaScript 工作原理的第十一章. 迄 ...
 - sql性能优化小技巧(一)
		
关于sql条件匹配对执行效率影响测试 首先,创建一个标量函数create function ff_test() returns int as begin declare @i int=0 while( ...
 - IT咨询顾问:一次吐血的项目救火    java或判断优化小技巧    asp.net core Session的测试使用心得    【.NET架构】BIM软件架构02:Web管控平台后台架构    NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json   使用LINQ生成Where的SQL语句  js_jquery_创建cookie有效期问题_时区问题
		
IT咨询顾问:一次吐血的项目救火 年后的一个合作公司上线了一个子业务系统,对接公司内部的单点系统.我收到该公司的技术咨询:项目启动后没有规律的突然无法登录了,重新启动后,登录一断时间后又无法重新登 ...
 - 嵌入式C语言优化小技巧
		
嵌入式C语言优化小技巧 1 概述 嵌入式系统是指完成一种或几种特定功能的计算机系统,具有自动化程度高,响应速度快等优点,目前已广泛应用于消费电子,工业控制等领域.嵌入式系统受其使用的硬件以及运行环境的 ...
 - 10个提升MySQL性能的小技巧
		
从工作量分析到索引的三条规则,这些专家见解肯定会让您的MySQL服务器尖叫. 在所有的关系数据库中,MySQL已经被证明了完全是一头野兽,只要通知停止运行就绝对不会让你多等一秒钟,使你的应用置于困境之 ...
 - MySQL查询语句执行过程及性能优化(JOIN/ORDER BY)-图
		
http://blog.csdn.net/iefreer/article/details/12622097 MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY) 标签 ...
 
随机推荐
- Linux 集群架构
			
集群介绍 Keepalived 配置高可用集群
 - Selenium 节点交互
			
Selenium 可以驱动浏览器来执行一些操作,也就是说可以让浏览器模拟执行一些动作 常见方法:输入文字时用 send_keys() 方法,清空文字时用 clear() 方法,点击按钮时用 click ...
 - erlang安装
			
在linux安装erlang只能下载源码安装包来安装,可以到erlang官方网站上下载
 - Hadoop学习笔记(1):WordCount程序的实现与总结
			
开篇语: 这几天开始学习Hadoop,花费了整整一天终于把伪分布式给搭好了,激动之情无法言表······ 搭好环境之后,按着书本的代码,实现了这个被誉为Hadoop中的HelloWorld的程序--W ...
 - Eclipse配色方案插件
			
Eclipse配色方案插件 真漂亮! 最近发现了一个Eclipse配色方案插件,这回给Eclipse配色太方便了. 插件主页:http://eclipsecolorthemes.org/ 插件提供了上 ...
 - 【Linux】使用 telnet 提示 Escape character is '^]'的意义
			
在linux/unix下使用telnet hostname port连接上主机后会提示Escape character is '^]' 这个提示的意思是按Ctrl + ] 会呼出telnet的命令行, ...
 - 微信小游戏 50M那部分的缓存机制的使用
			
一.使用 AssetsManager 灵活定制微信小游戏的缓存策略 官网教程:http://developer.egret.com/cn/github/egret-docs/Engine2D/mini ...
 - numpy生成随机数组
			
python想要生成随机数的话用使用random库很方便,不过如果想生成随机数组的话,还是用numpy更好更强大一点. 生成长度为10,在[0,1)之间平均分布的随机数组: rarray=numpy. ...
 - python计算均值方差
			
用Python求均值与方差,可以自己写,也可以借助于numpy,不过到底哪个快一点呢? 我做了个实验,首先生成9百万个样本: nlist=range(0,9000000) nlist=[float(i ...
 - 几种在Linux下查询外网IP的办法(转)
			
Curl 纯文本格式输出: curl icanhazip.com curl ifconfig.me curl curlmyip.com curl ip.appspot.com curl ipinfo. ...