SQLServer性能优化宝典_第1页
SQLServer性能优化宝典_第2页
SQLServer性能优化宝典_第3页
SQLServer性能优化宝典_第4页
SQLServer性能优化宝典_第5页
已阅读5页,还剩5页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SQLServer性能优化宝典TOC\o”1—3"\h\z\uHYPERLINK\l"_Toc317759911”1).优化方法论ﻩPAGEREF_Toc317759911\h6HYPERLINK\l"_Toc317759912"1。分析实例的等待ﻩPAGEREF_Toc317759912\h6HYPERLINK2).XMLﻩPAGEREF_Toc317759922\h11HYPERLINK\l"_Toc317759923”3).图形ﻩPAGEREF_Toc317759923\h11HYPERLINK\l"_Toc317759924"3.syscachobjectsﻩPAGEREF_Toc317759924\h11HYPERLINK\l"_Toc317759925"4.清空缓存(数据/查询计划) PAGEREF_Toc317759925\h11HYPERLINK\l”_Toc317759926”5.动态管理对象 PAGEREF_Toc317759926\h11HYPERLINK\l"_Toc317759927"6.STATISTICSIOﻩPAGEREF_Toc317759927\h11HYPERLINK\l"_Toc317759928"7。STATISTICSTIMEﻩPAGEREF_Toc317759928\h12HYPERLINK\l”_Toc317759929”8。分析执行计划ﻩPAGEREF_Toc317759929\h12HYPERLINK\l"_Toc317759930"8.1.取得缓存中每个计划的XML计划ﻩPAGEREF_Toc317759930\h13HYPERLINK\l"_Toc317759931"8.2.过多的重新编译ﻩPAGEREF_Toc317759931\h14HYPERLINK\l”_Toc317759932"8。3.不够高效的查询计划ﻩPAGEREF_Toc317759932\h14HYPERLINK\l"_Toc317759933”8.4.执行计划重用次数ﻩPAGEREF_Toc317759933\h15HYPERLINK\l"_Toc317759934"9.索引优化ﻩPAGEREF_Toc317759934\h15HYPERLINK\l"_Toc317759935"9。1.索引优化概要和分析ﻩPAGEREF_Toc317759935\h15HYPERLINK\l”_Toc317759936"9.2.查看索引碎片信息ﻩPAGEREF_Toc317759936\h15HYPERLINK\l"_Toc317759937”9。3。重新生成和重新组织索引ﻩPAGEREF_Toc317759937\h17HYPERLINK\l"_Toc317759938"9。4.查看没有使用的索引ﻩPAGEREF_Toc317759938\h18HYPERLINK\l"_Toc317759939"9.5.查看已经使用且如何使用索引列表ﻩPAGEREF_Toc317759939\h19HYPERLINK\l"_Toc317759940”9.6.查看每个表的索引结构 PAGEREF_Toc317759940\h20HYPERLINK\l”_Toc317759941"9.7。查看索引列挨次 PAGEREF_Toc317759941\h20HYPERLINK\l”_Toc317759942”9.8。同时查看使用和未使用索引及列位置信息ﻩPAGEREF_Toc317759942\h21HYPERLINK\l"_Toc317759943"9.9。查看聚集表个数ﻩPAGEREF_Toc317759943\h22HYPERLINK\l"_Toc317759944"9。10.索引使用效率评估ﻩPAGEREF_Toc317759944\h23HYPERLINK\l"_Toc317759945"9.11.评估索引的选择性ﻩPAGEREF_Toc317759945\h23HYPERLINK\l"_Toc317759946"10.数据库和文件空间 PAGEREF_Toc317759946\h23HYPERLINK10.1查看数据库空间ﻩPAGEREF_Toc317759947\h23HYPERLINK\l"_Toc317759948”10.2查看数据库中每个表的占用空间ﻩPAGEREF_Toc317759948\h23HYPERLINK10。9.查看数据库的版本和补丁信息ﻩPAGEREF_Toc317759955\h27HYPERLINK\l”_Toc317759956”11.监视命令ﻩPAGEREF_Toc317759956\h27HYPERLINK\l”_Toc317759957”12.SQLﻩPAGEREF_Toc317759957\h28HYPERLINK\l"_Toc317759958"13.跟踪 PAGEREF_Toc317759958\h29HYPERLINK\l"_Toc317759959"3).性能故障检测方法ﻩPAGEREF_Toc317759959\h31HYPERLINK\l”_Toc317759960"1.CPUﻩPAGEREF_Toc317759960\h31HYPERLINK\l"_Toc317759961"1。1可运行状态下的工作进程数量ﻩPAGEREF_Toc317759961\h31HYPERLINK\l"_Toc317759962"1。2工作进程在可运行状态下花费的时间ﻩPAGEREF_Toc317759962\h31HYPERLINK\l”_Toc317759963"1.3每次执行过程中占用CPU最多的前10位查询 PAGEREF_Toc317759963\h31HYPERLINK\l"_Toc317759964”1.4每次执行过程中运行最频繁的查询[与1.2同用]ﻩPAGEREF_Toc317759964\h32HYPERLINK\l”_Toc317759965"1。5编译和重编译ﻩPAGEREF_Toc317759965\h32HYPERLINK\l"_Toc317759966"1.6猎取安排给用于存储优化查询计划的过程高速缓存的内存 PAGEREF_Toc317759966\h32HYPERLINK\l"_Toc317759967"1.7确定服务器的活动ﻩPAGEREF_Toc317759967\h33HYPERLINK\l"_Toc317759968"2.内存ﻩPAGEREF_Toc317759968\h33HYPERLINK\l”_Toc317759969"2.1物理内存压力的检测ﻩPAGEREF_Toc317759969\h33HYPERLINK\l”_Toc317759970"2。2虚拟内存压力的检测ﻩPAGEREF_Toc317759970\h34HYPERLINK\l"_Toc317759971"2.3内存压力的隔离和排查ﻩPAGEREF_Toc317759971\h35HYPERLINK\l”_Toc317759972"3。I/OﻩPAGEREF_Toc317759972\h36HYPERLINK\l”_Toc317759973"3.1I/O瓶颈的检测ﻩPAGEREF_Toc317759973\h36HYPERLINK\l”_Toc317759974”3.2I/O瓶颈的隔离和排查ﻩPAGEREF_Toc317759974\h37HYPERLINK\l"_Toc317759975"4.tempdbﻩPAGEREF_Toc317759975\h38HYPERLINK\l"_Toc317759976”4。1tempdb性能问题的检测ﻩPAGEREF_Toc317759976\h38HYPERLINK\l"_Toc317759977”4.2tempdb瓶颈的隔离和排查ﻩPAGEREF_Toc317759977\h39HYPERLINK\l”_Toc317759978”4.3检查tempdb空闲空间方法ﻩPAGEREF_Toc317759978\h40HYPERLINK\l"_Toc317759979"5.堵塞 PAGEREF_Toc317759979\h40HYPERLINK\l"_Toc317759980”5。1堵塞的检测(V)ﻩPAGEREF_Toc317759980\h40HYPERLINK\l”_Toc317759981”5.2隔离和排查堵塞故障ﻩPAGEREF_Toc317759981\h41HYPERLINK\l”_Toc317759982”6.死锁ﻩPAGEREF_Toc317759982\h43HYPERLINK\l"_Toc317759983"6.1使用sys。dm_tran_locksDMV在给定的时间点探测表锁(X)ﻩPAGEREF_Toc317759983\h43HYPERLINK6.2防止锁升级—设置表在1小时内防止锁升级ﻩPAGEREF_Toc317759984\h43HYPERLINK\l"_Toc317759985”6.3显示发生5秒以上的等待(V) PAGEREF_Toc317759985\h43HYPERLINK\l”_Toc317759986"6.4显示处于WAIT状态的锁(A)(V)ﻩPAGEREF_Toc317759986\h44HYPERLINK\l"_Toc317759987"6.5显示每个等待资源已授权和等待中的锁(B)(V)ﻩPAGEREF_Toc317759987\h44HYPERLINK\l"_Toc317759988"6。6返回resource_associated_entity_id表示的实际对象(C)(V) PAGEREF_Toc317759988\h45HYPERLINK\l”_Toc317759989"6。7提取等待查询文本(V)ﻩPAGEREF_Toc317759989\h46HYPERLINK6.10跟踪标记1204 PAGEREF_Toc317759992\h48HYPERLINK\l”_Toc317759993"6.11查看锁信息[存储过程1]ﻩPAGEREF_Toc317759993\h48HYPERLINK\l"_Toc317759994"6。12查看锁信息[存储过程2] PAGEREF_Toc317759994\h49HYPERLINK\l"_Toc317759995”7.排解故障ﻩPAGEREF_Toc317759995\h51HYPERLINK\l”_Toc317759996”7.1207错误提示ﻩPAGEREF_Toc317759996\h51HYPERLINK\l”_Toc317759997”7.2查看连接数 PAGEREF_Toc317759997\h51HYPERLINK\l”_Toc317759998"8.信息查询ﻩPAGEREF_Toc317759998\h51HYPERLINK\l"_Toc317759999”8.1查看数据库是否启用AWEﻩPAGEREF_Toc317759999\h51HYPERLINK9.存储引擎ﻩPAGEREF_Toc317760001\h52HYPERLINK\l"_Toc317760002"9。1查看数据库信息(实例/数据库/文件信息) PAGEREF_Toc317760002\h52HYPERLINK\l"_Toc317760003"9。2查看数据库信息(表/对象)ﻩPAGEREF_Toc317760003\h52HYPERLINK\l”_Toc317760004"9。3查看数据库信息(对象存储视图)ﻩPAGEREF_Toc317760004\h54HYPERLINK\l"_Toc317760005”9.4查看页面结构ﻩPAGEREF_Toc317760005\h56HYPERLINK\l"_Toc317760006”9.5PFS页面结构ﻩPAGEREF_Toc317760006\h58HYPERLINK\l”_Toc317760007"9.6IAM页面结构 PAGEREF_Toc317760007\h58HYPERLINK9。8猎取表的页面信息ﻩPAGEREF_Toc317760009\h61HYPERLINK\l”_Toc317760010"9.9转换页面地址为页号ﻩPAGEREF_Toc317760010\h62HYPERLINK10。1SQLSERVER等待类型ﻩPAGEREF_Toc317760012\h63ﻬ1).优化方法论—>分析实例的等待->联系等待和队列—>确定方案—>细化到数据库/文件级—>细化到进程级—>优化索引/查询1。分析实例的等待1.1返回系统中的等待(按类型排序)--SQLServer2005SELECTwait_type,waiting_tasks_count,wait_time_ms,max_wait_time_ms,signal_wait_time_msFROMsys.dm_os_wait_statsORDERBYwait_type;-—SQLServer2000DBCCSQLPERF(WAITSTATS);--列解释列名数据类型说明wait_typenvarchar(60)等待类型的名称。waiting_tasks_countbigint该等待类型的等待数。该计数器在每开头一个等待时便会增加。wait_time_msbigint该等待类型的总等待时间(毫秒)。此时间包含signal_wait_time。max_wait_time_msbigint该等待类型的最长等待时间。signal_wait_timebigint正在等待的线程从收到信号通知到其开头运行之间的时差。—-行解释(sql2005联机帮助)ms-help://MS。SQLCC。v9/MS。SQLSVR。v9.zh-CHS/tsqlref9/html/568d89ed—2c96—4795—8a0c-2f3e375081da.htm注意:这些统计信息在每次重新启动SQLServer时都不能持续存在,并且全部的数据均为自上次重置统计信息或启动服务器以来累积的数据。1.2重置系统中的等待--SQLServer2005-—该命令将全部计数器重置为0。--或重启数据库服务器DBCCSQLPERF('sys.dm_os_wait_stats’,CLEAR);--SQLServer2000DBCCSQLPERF(WAITSTATS,CLEAR);1。3返回系统中的等待(90%重量级)WITHWaitsAS(SELECTwait_type,wait_time_ms/1000。ASwait_time_s,100。*wait_time_ms/SUM(wait_time_ms)OVER()ASpct,ROW_NUMBER()OVER(ORDERBYwait_time_msDESC)ASrnFROMsys。dm_os_wait_statsWHEREwait_typeNOTLIKE’%SLEEP%'-—filteroutadditionalirrelevantwaits)SELECTW1。wait_type,CAST(W1.wait_time_sASDECIMAL(12,2))ASwait_time_s,CAST(W1.pctASDECIMAL(12,2))ASpct,CAST(SUM(W2.pct)ASDECIMAL(12,2))ASrunning_pctFROMWaitsASW1JOINWaitsASW2ONW2.rn<=W1.rnGROUPBYW1.rn,W1.wait_type,W1.wait_time_s,W1.pctHAVINGSUM(W2。pct)-W1。pct〈90-—percentagethresholdORW1。rn<=10—-至少10行[可选条件]ORDERBYW1.rn;GO1。4制作等待分布图TSQL-查询Page76,可以得到一天中各种类型等待发生什么时间。2.联系等待和队列主要依据上面1中结果,分析计数器。分析过程概述见TSQL—查询Page80--SQLServer2005SELECTobject_name,counter_name,instance_name,cntr_value,cntr_typeFROMsys。dm_os_performance_counters;-—SQLServer2000SELECTobject_name,counter_name,instance_name,cntr_value,cntr_typeFROMmaster。dbo。sysperfinfo;GO3.确定方案4.细化到数据库/文件级[Page82]以I/O为例,如下语句可以查询哪个数据库中的哪类文件导致大部分I/O及等待:-—AnalyzeDBIOWITHDBIOAS(SELECTDB_NAME(IVFS.database_id)ASdb,CASEWHENMF。type=1THEN'log'ELSE'data'ENDASfile_type,SUM(IVFS。num_of_bytes_read+IVFS.num_of_bytes_written)ASio,SUM(IVFS.io_stall)ASio_stallFROMsys。dm_io_virtual_file_stats(NULL,NULL)ASIVFSJOINsys。master_filesASMFONIVFS.database_id=MF.database_idANDIVFS.file_id=MF.file_idGROUPBYDB_NAME(IVFS。database_id),MF.type)SELECTdb,file_type,CAST(1.*io/(1024*1024)ASDECIMAL(12,2))ASio_mb,CAST(io_stall/1000.ASDECIMAL(12,2))ASio_stall_s,CAST(100.*io_stall/SUM(io_stall)OVER()ASDECIMAL(10,2))ASio_stall_pct,ROW_NUMBER()OVER(ORDERBYio_stallDESC)ASrnFROMDBIOORDERBYio_stallDESC;-—SQLServer2000SELECT*FROM::fn_virtualfilestats(15,1);GO5.细化到进程级(指存储过程,查询等)5.1生成跟踪存储过程(附件:SQL跟踪存储过程。txt)ﻩﻩ5.2调用跟踪存储过程——StartthetraceDECLARE@dbidASINT,@traceidASINT;SET@dbid=DB_ID('Performance’);EXECdbo。sp_perfworkload_trace_start@dbid=@dbid,@tracefile='c:\temp\Perfworkload',--c:\temp\Perfworkload.trc@traceid=@traceidOUTPUT;GO--Stopthetrace(不要与上面在一块执行)EXECsp_trace_setstatus2,0;--停止EXECsp_trace_setstatus2,2;--移除GO—-s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论