电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

NC技术培训资料-数据库性能问题诊断.ppt

NC技术培训资料-数据库性能问题诊断.ppt_第1页
1/34
YonyouSoftwareCorporation数据库性能问题诊断用友软件股份有限公司黄卫2013年8月YonyouSoftwareCorporationOracle性能诊断工具操作系统:top\topas、vmstat、iostatOracle功能:awr、v$(dba)视图、alert.log、sqlplan第三方工具:sqldeveloperMSSQLServer性能诊断工具操作系统:性能计数器、任务管理器、资源监控器MSSQLServer功能:dmv视图、sqlprofiler、errorlog、managementstudio(sqlplan、indexadvice)场景设定整体性能问题:数据库服务器整体性能达到瓶颈,无法及时响应sql请求局部性能问题:某些功能点数据库访问性能低下内容简介Oracle整体性能诊断1Oracle局部性能诊断2MSSQLServer整体性能诊断3MSSQLServer局部性能诊断4YonyouSoftwareCorporationOracle整体性能诊断-top\topas-1top\topas可以帮助我们诊断linux\unix数据库服务器cpu、memory、I/O、network、process等关键部件的整体运行情况。YonyouSoftwareCorporationOracle整体性能诊断-top\topas-2根据top\topas中的pid我们可以找到导致资源占用过多的oracle进程,进而得知其运行的sql语句。selecta.SQL_TEXT,b.EVENT,b.LAST_CALL_ET,b.SID,b.SERIAL#,b.USERNAME,b.MACHINEfromv$sqltexta,v$sessionb,v$processcwherec.spid=[pid]andb.paddr=c.addranda.hash_value=b.sql_hash_valueorderbypieceYonyouSoftwareCorporationOracle整体性能诊断-vmstat、iostatvmstat可以查看整体性能情况,对swap换页情况的观察很有帮助iostat主要用于存储设备吞吐量观察YonyouSoftwareCorporationOracle整体性能诊断-alert.log影响Oracle运行的异常问题会在alert.log中报出YonyouSoftwareCorporationOracle整体性能诊断-awr-1awr报告了oracle的整体运行情况,默认一个小时是一个采集点YonyouSoftwareCorporationOracle整体性能诊断-awr-2YonyouSoftwareCorporationOracle整体性能诊断-关键参数当新项目需要部署Oracle数据库初始参数或者部署NC试验环境时,通过ncperf包中tcheck和texe方法可以快速为Oracle环境设置正确的初始参数。屏蔽了查找部署文档及学习如何设置Oracle初始参数等繁琐的技术细节。select*fromtable(ncperf.tcheck(32000));beginncperf.texe(4000);end;Oracle整体性能诊断1Oracle局部性能诊断2MSSQLServer整体性能诊断3MSSQLServer局部性能诊断4YonyouSoftwareCorporationOracle局部性能诊断-正在发生的锁阻塞Oracle中两个不同的数据库连接因为dml同时操作一条记录时会发生锁阻塞YonyouSoftwareCorporationOracle局部性能诊断-曾经发生的锁阻塞YonyouSoftwareCorporationOracle局部性能诊断-查询耗时sqlselects.client_identifier,s.sid,s.serial#,sql.sql_fulltext,s.last_call_et,s.event,sql.SQL_ID,child_number,s.sql_hash_valuefromv$sessions,v$sqlsqlwheres.sql_address=sql.ADDRESSands.username=upper('[username]')ands.status='ACTIVE'orderbysidselect*fromv$session_longopswheretime_remaining>0正在执行的耗时sqlawr中某一时间段的耗时sqlYonyouSoftwareCorporationOracle局部性能诊断-分析sql-1SQL_IDbg5v796nyx0b2,childnumber0-------------------------------------selecta.pk_messageinfo,a.senderman,b.user_name,a.checkman,a.pk_corp,a.type,a.state,a.url,a.title,a.content,a.senddate,a.priority,a.dealdate,a.billid,a.billno,a.pk_billtype,a.pk_srcbilltype,a.pk_busitype,a.actiontype,a.titlecolorfrompub_messageinfoa,sm_userbwherea.senderman=b.cuserid(+)and(checkman=:1and(a.typein(3,4,5,6))and(a.receivedeleteflagisnullora.receivedeleteflag='N')anda.state=0)orderbysenddatedescPlanhashvalue:657918639-------------------------------------------------------------------------------------------------|Id|Operation|Name|Rows|Bytes|Cost(%CPU)|Time|-------------------------------------------------------------------------------------------------|0|SELECTSTATEMENT||||4055(100)|||1|SORTORDERBY||2|1534|4055(1)|00:00:49||2|NESTEDLOOPSOUTER||2|1534|4054(1)|00:00:49||*3|TABLEACCESSFULL|PUB_MESSAGEINFO|2|1478|4053(1)|00:00:49||4|TABLEACCESSBYINDEXROWID|SM_USER|1|28|1(0)|00:00:01||*5|INDEXUNIQUESCAN|PK_SM_USER|1||1(0)|00:00:01|-------------------------------------------------------------------------------------------------YonyouSoftwareCorporation缺少合适的索引?Oracle局部性能诊断-分析sql-2统计信息没有更新?查询缺少必要的过滤条件?表关联应该用hashjoin的走了nestedloop?新版本数据库Bug导致老版本高效的sql性能变差?……高水位线导致全表扫描?YonyouSoftwareCorporationOracle局部性能诊断-执行sql数量过多导致功能点缓慢Oracle整体性能诊断1Oracle局部性能诊断2MSSQLServer整体性能诊断3MSSQLServer局部性能诊断4YonyouSoftwareCorporationMSSQLServer整体性能诊断-windows任务管理器YonyouSoftwareCorporationMSSQLServer整体性能诊断-windows性能计数器YonyouSoftwareCorporationMSSQLServer整体性能诊断-errorlog影响mssqlserver运行的异常问题会在errorlog中报出YonyouSoftwareCorporationMSSQLServer整体性能诊断-动态视图select*fromsys.dm_os_wait_statsorderbywait_time_msdescsys.dm_os_开头的dmv视图都可以用于全局监控MSSQLServer运行情况YonyouSoftwareCorporationMSSQLServer整体性能诊断-关键参数-1MSSQLServer读已提交快照功能一定要开启selectname,is_read_committed_snapshot_onfromsys.databaseswherename='nc61'ALTERDATABASEdatabasenamesetREAD_COMMITTED_SNAPSHOTONWITHROLLBACKIMMEDIATEYonyouSoftwareCorporationMSSQLServer整体性能诊断-关键参数-2MSSQLServer并行执行参数建议将并行度设置为1,主要考虑查询性能和阻塞EXECsys.sp_configureN'maxdegreeofparallelism',N'1'Oracle整体性能诊断1Oracle局部性能诊断2MSSQLServer整体性能诊断3MSSQLServer局部性能诊断4YonyouSoftwareCorporationMSSQLServer局部性能诊断-当前发生的锁阻塞sp_who2、sp_lock、sys.dm_exec_requestsselecta.session_id,a.blocking_session_id,a.wait_resourcefromsys.dm_exec_requestsawherea.blocking_session_id>0dbccinputbuffer(56)YonyouSoftwareCorporationMSSQLServer局部性能诊断-持续追踪锁阻塞-1sqlserverprofilerEXECsys.sp_configureN'blockedprocessthreshold(s)',N‘20'YonyouSoftwareCorporationMSSQLServer局部性能诊断-持续追踪锁阻塞-2YonyouSoftwareCorporationMSSQLServer局部性能诊断-查询耗时sqlSELECT*,(SELECTSUBSTRING(text,statement_start_offset/2,(CASEWHENstatement_end_offset=-1THENLEN(CONVERT(nvarchar(max),text))*2ELSEstatement_end_offsetEND-statement_start_offset)/2)FROMsys.dm_exec_sql_text(sql_handle))ASquery_textFROMsys.dm_exec_query_statsORDERBYtotal_worker_timeDESCYonyouSoftwareCorporationMSSQLServer局部性能诊断-分析sql-1执行计划YonyouSoftwareCorporationMSSQLServer局部性能诊断-分析sql-2索引建议YonyouSoftwareCorporationMSSQLServer局部性能诊断-分析sql-3mssqlserver自动维护统计信息(statman),统计信息不正确大部分是因为bugmssqlserver执行计划中的hashjoin一般意味着缺少索引mssqlserver表和索引容易因为碎片导致查询缓慢,需要定期进行表和索引的rebuildmssqlserver包含性列索引可以帮助索引覆盖YonyouSoftwareCorporationQ/AYonyouSoftwareCorporation

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

NC技术培训资料-数据库性能问题诊断.ppt

您可能关注的文档

管理软件+ 关注
实名认证
内容提供者

管理软件资料分享

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信