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

SugarHosts糖果主机商更换域名

昨天,遇到一个网友客户告知他的网站无法访问需要帮他检查到底是什么问题。这个同学的网站是我帮他搭建的,于是我先PING看到他的网站是不通的,开始以为是服务器是不是出现故障导致无法打开的。检查到他的服务器是有放在SugarHosts糖果主机商中,于是我登录他的糖果主机后台看到服务器是正常运行的。但是,我看到面板中的IP地址居然是和他网站解析的IP地址不同。看来官方是有更换域名。于是我就问 客服到底是什...

CloudCone:KVM月付1.99美元起,洛杉矶机房,支持PayPal/支付宝

CloudCone的[2021 Flash Sale]活动仍在继续,针对独立服务器、VPS或者Hosted email,其中VPS主机基于KVM架构,最低每月1.99美元,支持7天退款到账户,可使用PayPal或者支付宝付款,先充值后下单的方式。这是一家成立于2017年的国外VPS主机商,提供独立服务器租用和VPS主机,其中VPS基于KVM架构,多个不同系列,也经常提供一些促销套餐,数据中心在洛杉...

justhost:“第4次VPS测评”,8.3元/月,200M带宽,不限流量,KVM虚拟,4个俄罗斯机房应有适合你的

justhost.ru官方来消息说已经对网络进行了比较全面的优化,针对中国电信、联通、移动来说,4个机房总有一个适合中国用户,让站长进行一下测试,这不就有了这篇有关justhost的VPS的第四次测评。本帖主要关注的是网络,对于其他的参数一概不管! 官方网站:https://justhost.ru 最低配VPS:8.3元/月,KVM,512M内存,5G硬盘,200M带宽,不限流量 购买链接:...

mssql为你推荐
桌面背景图片风景有没有高清唯美天然风景电脑桌面壁纸316不锈钢和304哪个好保温杯买304不锈钢的好,还是316不锈钢的好?租车平台哪个好想网上租车,选什么平台好?集成显卡和独立显卡哪个好集成显卡和独立显卡的区别?哪个更好?手机管家哪个好手机管家哪个好网络机顶盒哪个好现在用什么网络机顶盒最好?网络机顶盒哪个好机顶盒哪个好用google广告申请申请Google广告要多长时间呢qq网盘在哪里QQ网盘在哪??????东莞电信网上营业厅电信网上营业厅广东电信
域名升级访问 怎么注册域名 域名主机空间 免费动态域名解析 z.com isatap windows2003iso 个人免费空间 炎黄盛世 最好的免费空间 秒杀汇 东莞数据中心 鲁诺 双线asp空间 789 独立主机 lamp什么意思 广州服务器托管 nic 更多