优化sqlserver查询性能02 - 大纲

优化sqlserver查询性能02 - 大纲

ID:1995951

大小:103.09 KB

页数:9页

时间:2017-11-14

优化sqlserver查询性能02 - 大纲_第1页
优化sqlserver查询性能02 - 大纲_第2页
优化sqlserver查询性能02 - 大纲_第3页
优化sqlserver查询性能02 - 大纲_第4页
优化sqlserver查询性能02 - 大纲_第5页
资源描述:

《优化sqlserver查询性能02 - 大纲》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、优化SQLServer查询性能-02刘豹0参考书籍《SQLServer2005技术内幕:查询、调整和优化》《SQLServer2005技术内幕:存储引擎》《SQLServer2005技术内幕:T-SQL查询》《SQLServer2005性能调校》《Dissecting+SQL+Server+Execution+Plans》1SQLServer性能诊断和优化全局简介&本次分享的假设场景SQLServer分享资料1.0SQLServer性能诊断和优化全局.mmap2再说计划缓存2.1SqlServer的内存:计划缓存(Cac

2、he)、数据缓存(Buffer)、SqlServer引擎本身命令:DBCCmemorystatusDEMO1:了解SQLServer内存的各种组成DBCCmemorystatus--返回文本便于查看命令详细:http://support.microsoft.com/kb/907877/EN-UShttp://support.microsoft.com/kb/271624/zh-cn其他资料:http://stackoverflow.com/questions/2810781/how-to-analyze-dbcc-memo

3、rystatus-result-in-sql-server-2008通过DBCC命令我们可以了解SQLServer内存的使用详细情况,同时也便于精细分析一条问题SQL的内存分配、变化和情况。这个命令主要用于深入研究SQLServer的内存分配行为,比如结合SQL语句详细执行计划分析物理查询操作对内存的使用特点。在实际开发中,并不需要对此命令过多关注。2.2回顾冷、热查询&基本IO,Time冷查询:没有缓存的SQL语句,这里缓存指数据缓存Buffer热查询:存在数据缓存的查询DEMO2:查看IO,Time的各种指标,理解冷、

4、热查询的区别[0]冷热查询基本IO,Time时间.sql这个DEMO说明了执行时间作为衡量时间比较不靠谱,即使cost很大的查询,在热查询的情况下,时间也可能花费很少。仔细观察输出发现只有逻辑IO是固定不变的,所以逻辑IO是衡量SQL语句优化的核心指标。*注意:逻辑IO是衡量单个SQL语句是否优化的核心指标。但在实际生产环境面对具体问题的场景中,有极少数情况,可能需要更加优化时间、物理IO等等其他指标。2.3关于计划缓存的核心问题2.3.1SQL提交方式、对应计划缓存类型SQL客户端提交SQL语句的时候,主要提交形式分为以

5、下几种:Ad-hoc查询、EXECSQL、EXECProc、sp_executesqlsql参数参数值……。ADO.NET客户端的主要提交方式映射到SQL客户端Ad-hoc查询、sp_executesql、EXECProc。2.3.2缓存利用率,缓存大小SELECT*FROMsys.syscacheobjectsSELECTstats.execution_countAS[执行次数],p.size_in_bytesAS[大小:字节数],[sql].[text]AS[执行计划对应SQL]FROMsys.dm_exec_cach

6、ed_planspOUTERAPPLYsys.dm_exec_sql_text(p.plan_handle)sqlJOINsys.dm_exec_query_statsstatsONstats.plan_handle=p.plan_handleF1&google&msdn是最好的老师:sys.dm_exec_cached_planssys.dm_exec_sql_textsys.dm_exec_query_statsstats2.4各种类型计划缓存DEMODEMO3:Ad-hoc查询,计划大小[1]研究计划缓存01_Adh

7、oc.sqlDEMO4:参数化查询DEMO、EXEC查询DEMO、sp_executesqlDEMO[2]研究计划缓存02_参数化查询.sqlDEMO5:ADO.NET对应缓存DEMO,用Profiler捕获文件夹:[3]Con_AdoNet_Demo这些DEMO说明了缓存计划需要相当的内存开销,而ad-hoc查询浪费的内存空间比较多。存储过程的计划缓存除了具备一般缓存类型的特点外,还有自身的特点和设置,暂时不在本次讨论范围内,掌握了基本的计划缓存特点后,只需要针对存储过程的特有几个特征加以注意后,非常容易掌握。*注意:S

8、QL的数据缓存机制不同于计划缓存机制,SQLServer的数据缓存机制,是类似OS的页替换算法。2.5即席查询&参数化查询性能分析与对比DEMODEMO6:避免ad-hoc查询[4]即席查询&参数化查询性能分析与对比.sql这些例子说明了ad-hoc查询在生成缓存中可能对IO有相当的负面影响。2.6决定

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

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

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