SMON的作用还包括合并空闲区间(coalesces free extent)

触发场景

早期Oracle采用DMT字典管理表空间,不同于今时今日的LMT本地管理方式,DMT下通过对FET$和UET$2张字典基表的递归操作来管理区间。SMON每5分钟(SMON wakes itself every 5 minutes and checks for tablespaces with default pctincrease != 0)会自发地去检查哪些默认存储参数pctincrease不等于0的字典管理表空间,注意这种清理工作是针对DMT的,而LMT则无需合并。SMON对这些DMT表空间上的连续相邻的空闲Extents实施coalesce操作以合并成一个更大的空闲Extent,这同时也意味着SMON需要维护FET$字典基表。

现象

以下查询可以检查数据库中空闲Extents的总数,如果这个总数在持续减少那么说明SMON正在coalesce free space:

SELECT COUNT(*) FROM DBA_FREE_SPACE;

在合并区间时SMON需要排他地(exclusive)持有ST(Space Transaction)队列锁, 其他会话可能因为得不到ST锁而等待超时出现ORA-01575错误。同时SMON可能在繁琐的coalesce操作中消耗100%的CPU。

如何禁止SMON合并空闲区间

可以通过设置诊断事件event=’10269 trace name context forever, level 10′来禁用SMON合并空闲区间(Don’t do coalesces of free space in SMON)

10269, 00000, "Don't do coalesces of free space in SMON"
// *Cause: setting this event prevents SMON from doing free space coalesces alter system set events '10269 trace name context forever, level 10';

最新文章

  1. 扫描仪API接入大全:Twain, WIA 或 两者不具有.[换个思路 春暖花开]
  2. python——django使用mysql数据库(二)
  3. Java实现点击一个Jlabel增加一个Jlabel的小功能
  4. MySQL中order by中关于NULL值的排序问题
  5. C#中字符串驻留技术
  6. ubuntu的vi
  7. GitHub干货分享(APP引导页的高度集成 - DHGuidePageHUD)
  8. 安装Oracle 9i - 初学者系列 - 学习者系列文章
  9. jQuery实现DIV拖动
  10. AOP 在javascript 中的使用
  11. 剑指offer——python【第23题】二叉搜索树的后序遍历序列
  12. oracle 11g RAC日志分布
  13. 二叉树:B+tree等
  14. JDBC中执行SQL语句的方式
  15. python-Selenium库的详解
  16. django之简单验证码实现与form表单钩子函数补充
  17. Java内存可见性
  18. SQL特殊comment语法
  19. 相关系数(CORRELATION COEFFICIENTS)会骗人?
  20. Vue项目开发之打包后背景图片路径错误的坑

热门文章

  1. ubuntu下完全安装mcrypt
  2. C# web winform 路径
  3. SGU196_Matrix Multiplication
  4. Frogger
  5. 基本套接字编程(5) -- epoll篇
  6. 2004FBI树
  7. Javascript 添加自定义静态方法属性JS清除左右空格
  8. 第三天:JS事件详解-事件流
  9. Git 放弃修改
  10. 【Win10】解决 模拟器调试手机 错误-> 引导阶段... 无法找到指定路径......\2052\msdbgui.dll