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

妮妮云80元/月,香港站群云服务器 1核1G

妮妮云的来历妮妮云是 789 陈总 张总 三方共同投资建立的网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑妮妮云的市场定位妮妮云主要代理市场稳定速度的云服务器产品,避免新手购买云服务器的时候众多商家不知道如何选择,妮妮云就帮你选择好了产品,无需承担购买风险,不用担心出现被跑路 被诈骗的情况。妮妮云的售后保证妮妮云退款 通过于合作商的友好协商,云服务器提供2天内全额退款,超过2天不退款 物...

LayerStack$10.04/月(可选中国香港、日本、新加坡和洛杉矶)高性能AMD EPYC (霄龙)云服务器,

LayerStack(成立于2017年),当前正在9折促销旗下的云服务器,LayerStack的云服务器采用第 3 代 AMD EPYC™ (霄龙) 处理器,DDR4内存和企业级 PCIe Gen 4 NVMe SSD。数据中心可选中国香港、日本、新加坡和洛杉矶!其中中国香港、日本和新加坡分为国际线路和CN2线路,如果选择CN2线路,价格每月要+3.2美元,付款支持paypal,支付宝,信用卡等!...

OneTechCloud(31元),美国CN2 GIA高防VPS月

OneTechCloud发布了本月促销信息,全场VPS主机月付9折,季付8折,优惠后香港VPS月付25.2元起,美国CN2 GIA线路高防VPS月付31.5元起。这是一家2019年成立的国人主机商,提供VPS主机和独立服务器租用,产品数据中心包括美国洛杉矶和中国香港,Cera的机器,VPS基于KVM架构,采用SSD硬盘,其中美国洛杉矶回程CN2 GIA,可选高防。下面列出部分套餐配置信息。美国CN...

mssql为你推荐
软银收购arm就只买苹果手机是崇洋媚外吗视频制作软件哪个好制作视频用哪个软件比较好视频剪辑软件哪个好视频剪辑哪个软件好用炒股软件哪个好炒股软件真的那么好用吗?炒股软件哪个好股票软件哪个最好用?核芯显卡与独立显卡哪个好独立显卡和核芯显卡有什么区别手机管家哪个好手机管家哪个软件好网校哪个好有什么网校比较好dnf魔枪士转职哪个好dnf魔枪士转职哪个职业好?播放器哪个好安卓手机视频播放器哪个好点
重庆域名注册 godaddy优惠码 日志分析软件 网通代理服务器 e蜗牛 dd444 天互数据 cdn加速是什么 最好的qq空间 paypal注册教程 安徽双线服务器 域名dns www789 ledlamp 工信部icp备案查询 美国迈阿密 大化网 789电视剧网 htaccess 架设代理服务器 更多