- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
如何写出高效的SQL脚本如何写出高效的SQL脚本
如何写出高效的SQL脚本:如何写出高效的SQL脚本《二》
1.???????? 设计如何满足SARG形式的SQL脚本
SARG的定义:用于限制有哪些信誉好的足球投注网站的一个操作,因为它通常是指一个特定的匹配,一个值得范围内的匹配或者两个以上条件的AND连接。[可以理解为索引扫描]形式如下:
列名 操作符 常数 或 变量
或
常数 或 变量 操作符列名
列名可以出现在操作符的一边,而常数或变量出现在操作符的另一边。如:
Name=’ATA’
数量5000
5000数量
Name=’ATA’ and 数量5000
如果一个表达式不能满足SARG的形式,那它就无法限制有哪些信誉好的足球投注网站的范围了,也就是SQL SERVER必须对每一行都判断它是否满足WHERE子句中的所有条件。所以一个索引对于不满足SARG形式的表达式来说是无用的
2.???????? Like
Like语句是否属于SARG取决于所使用的通配符的类型
如:name like ‘ATA%’ ,这就属于SARG
而:name like ‘%ATA’ ,就不属于SARG。
原因是通配符%在字符串的开头使得索引无法使用。
3.???????? OR 和 IN
or 会引起全表扫描
Name=’ATA’ and 数量5000 符号SARG,而:Name=’ATA’ or 数量5000 则不符合SARG。使用or和In会引起全表扫描
4.????? 非操作符、函数引起的不满足SARG形式的语句
不满足SARG形式的语句最典型的情况就是包括非操作符的语句,如:NOT、!=、、!、!、NOT EXISTS、NOT IN、NOT LIKE,is null, not null等,另外还有函数。下面就是几个不满足SARG形式的例子:
ABS(数量)5000
Name like ‘%ATA’
有些表达式,如:
WHERE 数量*25000
SQL SERVER也会认为是SARG,SQL SERVER会将此式转化为:
WHERE数量2500/2
不推荐这样使用,因为有时SQL SERVER不能保证这种转化与原始表达式是完全等价的。
5.?????? 函数charindex()、前面加通配符%的LIKE,后面加%的效率比较
如果在LIKE前面加上通配符%,那么将会引起全表扫描,所以其执行效率是低下的。用函数charindex()来代替LIKE速度会有大的提升的说法不对的,测试如下:
1.????? select fcandidateid,fcandidatename from tcandidate where fcandidatename like Tim%
用时:36秒,记录结果数:200万
2.????? select fcandidateid,fcandidatename from tcandidate
where? charindex(Tim,fcandidatename)0
用时:47秒,记录结果数:200万
3.????? select fcandidateid,fcandidatename from tcandidate
where? fcandidatename like %Tim%
用时:45秒,记录结果数:200万
通过以上3个例子可以看出,再使用Like的时候,后面加“Tim%”符合SARG规则,用时明显少于后两种,后两种的性能基本上差不多
如果非的模糊,比如:substring(fcandidatename,1,1)=’A’,那么可以考虑这样:fcandidatename like ‘A%’来代替(因为这样用的是索引扫描,不是表扫描)
如何写出高效的SQL脚本《二》
6.?????? 字段提取要按照“需多少、提多少”的原则,避免“select *“
下面我来做一个测试:
a)????? select fcandidateid,fcandidatename from tcandidate where? fcandidatename like Tim%
用时:35秒 记录结果数:200万
b)????? select fcandidateid,fcandidatename,fCredentialsID,fbirthday from tcandidate where? fcandidatename like Tim%
用时:51秒记录结果数:200万
c)????? select fcandidateid from tcandidate where? fcandidatename like Tim%
用时:23秒 记录结果数:200万
由此看来,我们每少提取一个字段,数据的提取速度就会有相应的提升,当然提升的速度还要
您可能关注的文档
- 如何做一个自由译者如何做一个自由译者.doc
- 如何做一名优秀的班主1如何做一名优秀的班主1.doc
- 如何做一名出色的主管如何做一名出色的主管.doc
- 如何做一名好律师如何做一名好律师.doc
- 如何做一名好老师如何做一名好老师.doc
- 如何做U盘启动盘如何做U盘启动盘.doc
- 如何做一名成功的微商如何做一名成功的微商.doc
- 如何做个优秀的产品经理如何做个优秀的产品经理.doc
- 如何做一名有效管理者如何做一名有效管理者.doc
- 如何做个精致的女人如何做个精致的女人.doc
- 专题06 经济体制(我国的社会主义市场经济体制)-五年(2020-2024)高考政治真题分类汇编(解析版).docx
- 专题11 世界多极化与经济全球化-5年(2020-2024)高考1年模拟政治真题分类汇编(解析版).docx
- 专题03 经济发展与社会进步-5年(2020-2024)高考1年模拟政治真题分类汇编(浙江专用)(解析版).docx
- 专题09 文化传承与文化创新-5年(2020-2024)高考1年模拟政治真题分类汇编(北京专用)(原卷版).docx
- 5年(2020-2024)高考政治真题分类汇编专题08 社会进步(我国的个人收入分配与社会保障)(原卷版).docx
- 专题07 探索世界与把握规律-5年(2020-2024)高考1年模拟政治真题分类汇编(解析版).docx
- 5年(2020-2024)高考政治真题分类汇编专题06 经济体制(我国的社会主义市场经济体制)(原卷版).docx
- 专题11 全面依法治国(治国理政的基本方式、法治中国建设、全面推进依法治国的基本要求)-五年(2020-2024)高考政治真题分类汇编(解析版).docx
- 专题17 区域联系与区域协调发展-【好题汇编】十年(2015-2024)高考地理真题分类汇编(解析版).docx
- 专题01 中国特色社会主义-5年(2020-2024)高考1年模拟政治真题分类汇编(原卷版).docx
最近下载
- NB_T 31083-2016风电场控制系统功能规范.pdf
- 德兴隆_PVC胶粒_A2190072365101001_2019.4.11_REACH检测报告英文版.pdf VIP
- 输液港植入术术后护理.pptx VIP
- 血液系统疾病(西安交通大学)中国大学MOOC慕课章节测验答案(课程ID:1462060167).pdf
- GB 1499.2-2024 钢筋混凝土用钢 第2部分:热轧带肋钢筋.pdf
- 征信简版电子版PDF个人信用报告必威体育精装版版2024年可编辑带水印模板.pdf
- 《高中64篇必考古诗文》.doc VIP
- Rota润唐 RTBR-601馒头面包机 馒头魔法盒说明书用户手册.pdf
- 《洋流》教学设计-优秀教案.docx
- 新人音版高中音乐必修“音乐鉴赏”《高山流水志家国——流水》说课稿.doc
文档评论(0)