脚本mssql优化查询

mssql  时间:2021-01-21  阅读:()

MSSQL优化查询

Tracy.T.Zhang1 使用“执行计划”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

2 比较执行时间. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7

3 查看IO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8

4 提升效率的几点原则. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

5 简单应用——比较两种分页算法的效率. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

5.1 执行计划比较. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10

5.2 运行时间比较. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

5.3 IO比较. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

公司的数据库属于具有海量数据的OLTP系统数据库所以对于效率的要求很高。很多时候脚本被DBA发回来也是因为这方面的原因。下面就结合实际工作讲一下我对SQL脚本优化的一些经验。

网上有很多关于数据库脚本优化的经验文章公司也有SQL脚本规范这些都写得很好都是前人积累的优秀经验但是一条条死记是比较辛苦一点的而且超出提到的范围之后也不一定能发现我们的脚本存在问题就更不用说去修改了。下面就说一下怎样利用MSSQL现有的工具发现我们脚本中的问题。

1使用“执行计划”

MSSQL提供了一个比较好的工具执行计划通过这个工具我们至少可以知道一下两件事情

1、 几个返回结果等效的脚本究竟哪一个效率更高

2、在一个脚本中哪一个地方消耗了最多的资源

就以我曾经做过的一个脚本为例来说明吧。这个脚本里面有一段类似这样的语句

按快捷键Ctr l+L调出预计的执行计划如图

我们发现消耗成本最大的是图中用红色边框标出来的那一部分将鼠标停留在上面进一步查看详细信息如图

得知影响效率的应该是这一句

找到原因了我们开始尝试修改改成了这样的脚本

用预计的执行计划对比一下两条语句如图

可以看到原来的脚本执行成本占总成本的84.30%经过改进后的脚本执行成本占总成本的15.70%经过改进后的脚本效率明显提高。

还可不可以有进一步的改善呢我们注意到数据库里有这样一个视图dbo.table_arcash可以替换子查询a于是有了第二次改进的脚本

现在再来看一下预计的执行计划

可以看到原来的脚本执行成本占总成本的73.12%第一次改进后的脚本占13.62%第二次改进的脚本占13.26%。说明经过第二次改进效率又有提升。

2比较执行时间

目前我们只是直观的从执行计划上看到提升的百分比但是具体到执行时间上有什么具体的提升呢这就需要引入第二个知识点查看执行时间。

很多人可能会说这还不简单查询分析器的状态栏每次都会显示执行时间。对的不

过这里只能看出到秒的差异而且大部分时候是看不出来有什么差异的。

我们只需要把脚本放到这样两条语句之间就可以看到细化到毫秒的差异了

下面我们把以上提到的三个脚本放进来执行以下看看时间上有什么差异结果如下

可以看到执行时间上面第二和第三个脚本比第一个脚本提升了很多。究竟为什么会有这么大的提升呢这就要引入第三个知识点查看IO

3查看IO

我们只需要把脚本放到这样两条语句之间就可以看到IO情况了

下面我们把以上提到的三个脚本放进来执行以下看看IO上有什么差异结果如下

我们主要观察logical reads的值越小说明脚本效率越高三个脚本差别最大的地方已经用黄色标出。从1155到105的变化足以说明效率为什么会有显著提升了。

4提升效率的几点原则

1) 减少IO次数 IO的次数越少效率将会越高。

2) 避免全表扫描。如果发现全表扫描看看是否有索引可以使用如果没有可以添加索引。

3) 如果数据量比较大在查询要用到的列上建索引如果数据量小不建索引的效率更高。

4) 先筛选再联结直接用符合条件的100条数据和10000条数据联接总比10000条数据

和10000条数据联结再选出符合条件的100条效率要高。

5简单应用——比较两种分页算法的效率

两种常用的分页算法NOT IN+TOP和>MAX+TOP下面作简单比较

香港最便宜的vps要多少钱?最便宜的香港vps能用吗?

香港最便宜的vps要多少钱?最便宜的香港vps能用吗?香港vps无需备案,整体性能好,而且租用价格便宜,使用灵活,因为备受站长喜爱。无论是个人还是企业建站,都比较倾向于选择香港VPS。最便宜的香港vps能用吗?正因为有着诸多租用优势,香港VPS在业内颇受欢迎,租用需求量也在日益攀升。那么,对于新手用户来说,香港最便宜的vps租用有四大要点是务必要注意的,还有易探云香港vps租用最便宜的月付仅18元...

wordpress投资主题模版 白银黄金贵金属金融投资网站主题

wordpress投资主题模版是一套适合白银、黄金、贵金属投资网站主题模板,绿色大气金融投资类网站主题,专业高级自适应多设备企业CMS建站主题 完善的外贸企业建站功能模块 + 高效通用的后台自定义设置,简洁大气的网站风格设计 + 更利于SEO搜索优化和站点收录排名!点击进入:wordpress投资主题模版安装环境:运行环境:PHP 7.0+, MYSQL 5.6 ( 最低主机需求 )最新兼容:完美...

俄罗斯vps主机推荐,怎么样俄罗斯vps俄罗斯vps速度怎么样?

俄罗斯vps速度怎么样?俄罗斯vps云主机节点是欧洲十大节点之一,地处俄罗斯首都莫斯科,网络带宽辐射周边欧洲大陆,10G专线连通德国法兰克福、法国巴黎、意大利米兰等,向外连接全球。俄罗斯vps云主机速度快吗、延迟多少?由于俄罗斯数据中心出口带宽充足,俄罗斯vps云主机到全球各地的延迟、速度相对来说都不错。今天,云服务器网(yuntue.com)小编介绍一下俄罗斯vps速度及俄罗斯vps主机推荐!俄...

mssql为你推荐
锦天城和君合哪个好和君智业和三人禾哪个公司的营销做的好集成显卡和独立显卡哪个好独立显卡和集成显卡哪个更好些手机浏览器哪个好手机什么浏览器最好用音乐播放器哪个好最好的音乐播放器下载杰士邦和杜蕾斯哪个好杰士邦的超薄款跟杜蕾斯的超薄款,哪个舒服点?网校哪个好市面上的网校,谁最好?oppo和vivo哪个好OPPO手机和vivo手机哪个好?播放器哪个好安卓手机视频播放器哪个好点qq空间登录不了为什么我的QQ空间登陆不上?360云盘登录怎样才能登录360云盘!?
edgecast 主机评测 host1plus hostmonster cpanel主机 mediafire 国外服务器 好看的留言 论坛空间 qingyun 网站木马检测工具 秒杀品 永久免费空间 浙江服务器 广东主机托管 新疆服务器 googlevoice ncp cdn加速 wannacry勒索病毒 更多