- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
性能监控与优化 ORACLE10G 数据库 联通事业部-系统平台-刘旭 请献上你的问题! 为什么sql在测试库很快,上了生产却很慢? 为什么迁移数据这么久? 为什么只更新一条记录等了5分钟还在更新? 为什么BSS BOSS系统又堵了? 为什么数据库有如此多的活动session? 为什么count(*)一张小表这么慢 培训目的: 能够确保更新到生产的sql语句高效 能够通过v$session视图定位数据库的繁忙程度 能够通过AWR报告准确定位系统的性能瓶颈,通过反复优化循序渐进的提高bss、boss系统在数据库上的性能 培训目标: 短时间内(5-10分钟)快速定位数据库性能瓶颈(具体到sql) 通过AWR分析过去某个时间段数据库的性能瓶颈 熟知在数据迁移过程中如何提高性能,从而缩短数据迁移时间 熟知数据库各种等待事件背后的原理。 交通事故? 车多缓行? 数据库性能突降(阻塞) 阻塞的标志字段(blocking_session) 如果blocking_session的状态是活动(active) — 优化语句或根据当时情况决定是否kill 如果blocking_session的状态是不活动的(inactive) — 超过一定时间,kill掉,找原因(是jdbc、tuxedo、还是终端工具操作忘记commit) 动态视图:v$session blocking_session=v$session中(sid) 模拟阻塞 数据库性能突降(无阻塞,只是活动session多) 查询v$session中event字段(都有哪些等待事件) latch: cache buffers chains read by other session db file scattered read enq: SQ - contention log file sync enq: TX - row contention PX Deq: Execution Msg latch: cache buffers chains(热块) 极短的时间内对少量数据块进行了过于频繁的并发访问 低效的SQL 内存 —— 磁盘—— 内存哈希表——遍历 表PCTFREE 表分区 read by other session 当一个会话试图修改一个数据块,但这个数据块正在被另一个会话修改时。 当一个会话需要读取一个数据块,但这个数据块正在被另一个会话从磁盘读取到内存中时 Oracle 操作的最小单位是块(Block),即使你要修改一条记录,也需要对这条记录所在的这个数据块做操作。 当你对这个数据块做修改时,其他的会话将被阻止对这个数据块上的数据做修改(即使其他用户修改的不是当前用户修改的数据),但是可以以一致性的方式读取这个数据块(from undo)。当前的用户修改完这个数据块后,将会立即释放掉加在这个数据块上的排他锁,这样另一个会话就可以继续修改它 什么是全表扫描 db file scattered read(全表扫描) 全表扫描 = 慢吗? 只有20条数据为什么count(*) 需要20秒甚至更久? 顺序地读取分配给表的每个数据块,直到读到表的最高水线处。一个多块读操作可以使一次I/O能读取多块数据块(db_file_multiblock_read_count参数设定),而不是只读取一个数据块,这极大的减少了I/O总次数,提高了系统的吞吐量,所以利用多块读的方法可以十分高效地实现全表扫描,而且只有在全表扫描的情况下才能使用多块读操作 enq: SQ - contention(序列CACHE) 赋予了CACHE 属性的Sequence 调用nextval 期间,许多会话同时访问nextval 值。需要将数据字典信息物理修改后,再次执行CACHE 的工作 select sequence_name.netval from dual 并发 log file sync-事务commit 当一个会话发出一个commit命令时,LGWR进程会将这个事务产生的redo log从log buffer里面写到磁盘上。 会话发出的commit指令后,需要等待LGWR将这个事务产生的redo 成功写入到磁盘之后,才可以继续进行后续的操作,这个等待事件就叫作log file sync。 当系统中出现大量的log file sync等待事件时,应该检查数据库中是否有用户在做频繁的提交操作。 enq: TX - row contention 表索引多吗? 更改相同的值吗? (blocking_session) delete、update、insert频繁吗
您可能关注的文档
最近下载
- 2024版房屋抵押贷款合同范本.docx VIP
- 基于反作用飞轮和磁力矩器的卫星姿态控制系统分析-analysis of satellite attitude control system based on reaction flywheel and magnetic torque device.docx VIP
- 地贫筛查中的血红蛋白电泳.pptx VIP
- 光电开关HPX-AG系列使用说明书.PDF VIP
- 精神科患者风险的管理.pptx VIP
- 保护女职工权益知识竞赛题库50题(答案).docx VIP
- 盖板涵施工监理细则.pdf VIP
- 迅达3300调试汇总.doc VIP
- (高清版)B-T 19843-2022 工业通风机 射流风机性能试验.pdf VIP
- 冰美人淘宝直播数据复盘.xlsx VIP
文档评论(0)