mssql优化查询

mssql优化查询

ID:32865636

大小:343.00 KB

页数:11页

时间:2019-02-16

mssql优化查询_第1页
mssql优化查询_第2页
mssql优化查询_第3页
mssql优化查询_第4页
mssql优化查询_第5页
资源描述:

《mssql优化查询》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、MSSQL优化查询Tracy.T.Zhang1使用“执行计划”12比较执行时间73查看IO84提升效率的几点原则95简单应用——比较两种分页算法的效率95.1执行计划比较105.2运行时间比较115.3IO比较11公司的数据库属于具有海量数据的OLTP系统数据库,所以对于效率的要求很高。很多时候脚本被DBA发回来也是因为这方面的原因。下面就结合实际工作,讲一下我对SQL脚本优化的一些经验。网上有很多关于数据库脚本优化的经验文章,公司也有SQL脚本规范,这些都写得很好,都是前人积累的优秀经验,但是,一条条死记是比较辛苦一点的,而且超出提到的范围之后也不一定能发现我们

2、的脚本存在问题,就更不用说去修改了。下面就说一下怎样利用MSSQL现有的工具发现我们脚本中的问题。1使用“执行计划”MSSQL提供了一个比较好的工具:执行计划,通过这个工具我们至少可以知道一下两件事情:1、几个返回结果等效的脚本,究竟哪一个效率更高2、在一个脚本中,哪一个地方,消耗了最多的资源就以我曾经做过的一个脚本为例来说明吧。这个脚本里面有一段类似这样的语句:DECLARE@CustNoINTSET@CustNo=600120SELECTreferenceNumber=CASEwhena.referencenumber<>''thena.referencenu

3、mberELSE(SELECTTOP1c.checknumberFROMdbo.TABLE_swc(NOLOCK)WHEREc.vENDornumber=a.customernumberANDc.checkamount=-a.paidamountANDc.status<>'V')END,payterms=b.descrip+''+RTRIM(a.payterms)FROM(SELECTreferencenumber,customernumber,paidamount,paytermscode,paytermsFROMact.dbo.newegg_arcash(NO

4、LOCK)WHEREcustomernumber=@CustNoUNIONALLSELECTreferencenumber,customernumber,paidamount,paytermscode,paytermsFROMhisact.dbo.arcash2006(NOLOCK)WHERECustomerNumber=@CustNoUNIONALLSELECTreferencenumber,customernumber,paidamount,paytermscode,paytermsFROMhisact.dbo.arcash2005(NOLOCK)WHEREC

5、ustomerNumber=@CustNoUNIONALLSELECTreferencenumber,customernumber,paidamount,paytermscode,paytermsFROMhisact.dbo.arcash2004(NOLOCK)WHERECustomerNumber=@CustNoUNIONALLSELECTreferencenumber,customernumber,paidamount,paytermscode,paytermsFROMhisact.dbo.arcash2003(NOLOCK)WHERECustomerNumb

6、er=@CustNoUNIONALLSELECTreferencenumber,customernumber,paidamount,paytermscode,paytermsFROMhisact.dbo.arcash2002(NOLOCK)WHERECustomerNumber=@CustNoUNIONALLSELECTreferencenumber,customernumber,paidamount,paytermscode,paytermsFROMhisact.dbo.arcash2001(NOLOCK)WHERECustomerNumber=@CustNo)

7、aLEFTJOINabs.dbo.ptermsb(NOLOCK)ONa.paytermscode=b.pterms按快捷键Ctrl+L,调出预计的执行计划,如图:我们发现消耗成本最大的是图中用红色边框标出来的那一部分,将鼠标停留在上面,进一步查看详细信息,如图:得知影响效率的应该是这一句referenceNumber=CASEwhena.referencenumber<>''thena.referencenumberELSE(SELECTTOP1c.checknumberFROMdbo.TABLE_swc(NOLOCK)WHEREc.vENDornumber=a.

8、custo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。