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 ...
- 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( ...
- sql 之优化小技巧
SET NOCOUNT ON:不返回计数,如果存储过程中包含一些并不返回实际数据的语句,网络通信流量便会大量减少,可以显著提高应用程序性能:
- 五,mysql优化——sql语句优化小技巧
1,大批量插入数据 (1)对于MyISAM: alter table table_name disable keys; loading data; alter table table_name ena ...
- Oracle SQL性能优化技巧大总结
http://wenku.baidu.com/link?url=liS0_3fAyX2uXF5MAEQxMOj3YIY4UCcQM4gPfPzHfFcHBXuJTE8rANrwu6GXwdzbmvdV ...
- SQL性能优化技巧
作者:IT王小二 博客:https://itwxe.com 这里就给小伙伴们带来工作中常用的一些 SQL 性能优化技巧总结,包括常见优化十经验.order by 与 group by 优化.分页查询优 ...
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
IT咨询顾问:一次吐血的项目救火 年后的一个合作公司上线了一个子业务系统,对接公司内部的单点系统.我收到该公司的技术咨询:项目启动后没有规律的突然无法登录了,重新启动后,登录一断时间后又无法重新登 ...
随机推荐
- HDU4862 Jump(放大边权的费用流)
题目大概给一个n×m的格子,每个格子有一个一位数字,格子不能重复经过,最多进行这样的k次行走:每一次选择任意一个格子出发,可以从当前格子走到下面或右边格子,花费能量是曼哈顿距离-1,而如果起点和终点格 ...
- BZOJ3748 : [POI2015]Kwadraty
打表可得结论: 1.只有2,3,6,7,8,11,12,15,18,19,...,108,112,128这31个数的k值是无穷大 2.当n足够大的时候,即当n>506时,设$f(x)=1^2+2 ...
- BZOJ3290 : Theresa与数据结构
CANCEL操作可以看作删点,X坐标可以离散化 将询问按Z坐标差分,转化成两个求Z<=某个数的和的询问 将操作CDQ分治 每次将前一半的修改.后一半的查询按照Z坐标排序 然后扫描线,每到一个询问 ...
- HDU 2612 (BFS搜索+多终点)
题目链接: http://poj.org/problem?id=1947 题目大意:两人选择图中一个kfc约会.问两人到达时间之和的最小值. 解题思路: 对于一个KFC,两人的BFS目标必须一致. 于 ...
- TYVJ P1016 装箱问题 Label:01背包 DP
做题记录:2016-08-15 23:07:04 背景 太原成成中学第2次模拟赛 第三道 描述 有一个箱子容量为v(正整数,o≤v≤20000),同时有n个物品(o≤n≤30),每个物品有一个体积 ( ...
- 【POJ】2104 K-th Number(区间k大+主席树)
http://poj.org/problem?id=2104 裸题不说.主席树水过. #include <cstdio> #include <iostream> #includ ...
- [shell] if else以及大于、小于、等于逻辑表达式 [转]
本文也即<Learning the bash Shell>3rd Edition的第五章Flow Control之读书笔记,但我们将不限于此.flow control是任何编程语言中很常用 ...
- Qt SizePolicy 属性
控件的sizePolicy说明控件在布局管理中的缩放方式.Qt提供的控件都有一个合理的缺省sizePolicy,但是这个缺省值有时不能适合 所有的布局,开发人员经常需要改变窗体上的某些控件的sizeP ...
- [转帖] Symbol Emotions Sticker 英文符号表情大全
:-) smile :-] polite smile :-( frown :-[ another frown :-/ or :-\ skepticism, annoyance, or a slight ...
- Jenkins学习记录
参考资料 官方文档 用MSBuild和Jenkins搭建持续集成环境(1) 用MSBuild和Jenkins搭建持续集成环境(2) 构建基于Jenkins + Github的持续集成环境 Jenkin ...