当前位置: 首页 > news >正文

Oracle中如何解决FREE BUFFER WAITS

基于性能上的考虑,服务器进程在扫描LRU主列的同时,会将脏块移至LRU-W列,如果发现没有足够可用(可替换)的BUFFER CACHE,进程并不会无止尽地扫描整条LRU主列,而是在扫描到某个阀值(该阀值由隐含参数_db_block_max_scan_pct决定。不同的版本,该隐含参数值可能会不同,在Oracle 10g中默认值为40)后就停止扫描。这时,前台进程会通知DBWR进程将相关脏块写进数据文件中,以得到空闲缓冲区。DBWR进程写脏块完成之前,服务器进程等待空闲缓冲区时会出现FREE BUFFER WAITS等待事件。FREE BUFFER WAITS等待事件通常是由以下原因引起的:
低效的SQL。低效的SQL会过多请求空闲缓冲区,因此FREE BUFFER WAITS等待也会响应增加。
BUFFER CACHE过小。这个比较好理解。
DBWR进程写脏块的速度不够快。可以通过改善存储性能、使用多个DBWR进程来加快DBWR进程写脏块的速度。
DBWR进程将脏块写到数据文件时,将会以EXCLUSIVE模式占有脏缓冲区。此时,如果有其他进程要读取或修改缓冲区,则需要等待DBWR进程写数据块结束,并出现WRITE COMPLETE WAITS等待事件。当出现WRITE COMPLETE WAITS事件时,存储存在性能问题的可能性比较高。
提示 请读者仔细体会FREE BUFFER WAITS等待事件和WRITE COMPLETE WAITS等待事件的区别。根据经验,FREE BUFFER WAITS等待事件常由应用引起,而WRITE COMPLETE WAITS等待事件则常由存储性能问题引起。

相关文章:

  • Oracle基础知识
  • Redis哨兵(Sentinel)模式详解:构建高可用Redis架构
  • 【c# 中 == 和jave 的== 区别】
  • 数据库与存储安全
  • 演示:【WPF-WinCC3D】 3D工业组态监控平台源代码
  • 深入理解Redis Cluster:架构、原理与实践
  • 【latex】文本颜色修改
  • 解决 Incorrect username or password (access token)
  • 系统架构设计(十七):微服务数据一致性和高可用策略
  • 黑马Java基础笔记-13常用查找算法
  • MySql数据库连接池
  • Xshell传输文件
  • KLEC--基于知识学习的演化计算算法
  • 技术问答:PHP、JAVA和Go的垃圾回收机制有哪些区别
  • HTML回顾
  • WEB品质标准
  • 分钟级降水预报API:精准预测每一滴雨的智慧科技
  • Hellorobot 开源实践赋能行业:从HPR模型到全栈技术资源,降低家庭机器人开发门槛
  • 算法第24天|93.复原IP地址、 78.子集、 90.子集II
  • 哈希介绍、哈希表模拟实现
  • 特朗普宣布打造“金穹”导弹防御系统,计划3年内运转
  • 每日475.52元!最高检公布侵犯公民人身自由最新赔偿金标准
  • 俄美元首通话超2小时,普京称愿与乌方共同起草和平备忘录
  • 世卫大会连续9年拒绝涉台提案
  • 43.2℃!河南林州打破全省5月最高温纪录,明后天高温将持续
  • 全总联合六部门印发工作指引,共保劳动者合法权益