脚本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下面作简单比较

青果网络-618阿里云,腾讯云特惠优惠折上折!

官方网站:点击访问青果云官方网站活动方案:—————————–活动规则—————————1、选购活动产品并下单(先不要支付)2、联系我司在线客服修改价格或领取赠送时间3、确认价格已按活动政策修改正确后,支付订单,到此产品开设成功4、本活动产品可以升级,升级所需费用按产品原价计算若发生退款,按资源实际使用情况折算为产品原价再退还剩余余额! 美国洛杉矶CN2_GIACPU内存系统盘流量宽带i...

tmhhost(100元/季)自带windows系统,香港(三网)cn2 gia、日本cn2、韩国cn2、美国(三网)cn2 gia、美国cn2gia200G高防

tmhhost可谓是相当熟悉国内网络情况(资质方面:ISP\ICP\工商齐备),专业售卖海外高端优质线路的云服务器和独立服务器,包括了:香港的三网cn2 gia、日本 cn2、日本软银云服务器、韩国CN2、美国三网cn2 gia 云服务器、美国 cn2 gia +200G高防的。另外还有国内云服务器:镇江BGP 大连BGP数据盘和系统盘分开,自带windows系统,支持支付宝付款和微信,简直就是专...

HostDare($33.79/年)CKVM和QKVM套餐 可选CN2 GIA线路

关于HostDare服务商在之前的文章中有介绍过几次,算是比较老牌的服务商,但是商家背景财力不是特别雄厚,算是比较小众的个人服务商。目前主流提供CKVM和QKVM套餐。前者是电信CN2 GIA,不过库存储备也不是很足,这不九月份发布新的补货库存活动,有提供九折优惠CN2 GIA,以及六五折优惠QKVM普通线路方案。这次活动截止到9月30日,不清楚商家这次库存补货多少。比如 QKVM基础的五个方案都...

mssql为你推荐
金士顿内存真假如何辨别KINGSTON 内存真假可爱桌面背景图片卡通壁纸谁有p图软件哪个好用手机p图软件那个好骁龙765g和骁龙865哪个好请问苹果的a13处理器和骁龙865综合性能两个相差大不大?以及打游戏哪个更流畅?莫代尔和纯棉哪个好莫代尔和纯棉的区别,莫代尔和纯棉哪个好游戏加速器哪个好网游加速器那个好?二手车网站哪个好想买台二手车,哪个二手车网站靠谱网页传奇哪个好玩求最好玩的网页传奇?清理手机垃圾软件哪个好清理手机垃圾的软件哪个好群空间登录为什么QQ群空间登陆不了
网站空间购买 域名备案批量查询 免费域名解析 堪萨斯服务器 免费主机 cdn服务器 网站监控 京东云擎 免费个人网站申请 免费个人空间 刀片式服务器 dnspod iki netvigator 512内存 bwg tko 大容量存储方案 大容量存储控制器驱动 广州服务器数据恢复 更多