ASSM 并非所有场景都该用,Oracle 9i起LMT默认启用ASSM,但高并发DML场景适用,只读或低频写入场景MSSM更轻量;SYSTEM表空间强制MSSM,且ASSM与MSSM不可在线切换。
Oracle 9i 起,本地管理表空间(LMT)创建时默认启用 SEGMENT SPACE MANAGEMENT AUTO,也就是 ASSM。但这不等于“所有场景都该用 ASSM”。关键看你的负载特征:如果表频繁插入、更新、删除,且并发会话多(比如订单库、日志表),ASSM 的位图机制能显著减少 buffer busy wait 和 enq: TX - allocation 等争用等待;但如果是只读或低频写入的归档表、历史分区,MSSM 反而更轻量、更可控。
有,但场景非常具体:
PCTUSED 精细控制块回收时机,而 ASSM 完全废弃该参数;FREELISTS 或 FREELIST GROUPS 来适配特定硬件队列深度(如 NVMe 盘+高线程数),MSSM 提供了直接干预入口。注意:SYSTEM 表空间强制 MSSM,无法改为 ASSM;任何表空间启用 ASSM 前必须是 EXTENT MANAGEMENT LOCAL,否则建表空间会报错 ORA-12913: Cannot create extent management local tablespace。
执行这条查询即可:
SELECT tablespace_name, extent_management, segment_space_management FROM dba_tablespaces WHERE tablespace_name = 'YOUR_TS_NAME';
结果中 segment_space_management 字段值为 AUTO 即 ASSM,MANUAL 即 MSSM。别只看 extent_management —— 它只说明区管理方式(本地 or 字典),和段空间管理无关。
不可在线切换。表空间一旦创建,SEGMENT SPACE MANAGEMENT 就固化了。想从 MSSM 改为 ASSM,必须:
expdp 或 CREATE TABLE AS SELECT);SEGMENT SPACE MANAGEMENT AUTO;这个过程停机不可避免,且重建后段头结构、位图块布局全部重置,原有 HWM(高水位线)和空闲块状态不复存在。所以选型务必在建库初期或迁移阶段定案,上线后再改代价太高。
真正容易被忽略的是:ASSM 的位图块本身也占存储空间,且随段增长自动分配 L1/L2/L3 块——这些块计入表空间使用率,但不会出现在 DBA_EXTENTS 中的用户对象里。监控空间时若只盯 dba_segments,可能低估真实占用。
小米路由器3G怎么恢复出厂设置(小米路由器3G该如何恢复出厂设置)
小米路由器3g和4a千兆版哪个好(小米路由器3g和4a千兆版对比区别)
Sensor Tower:ChatGPT全球份额跌破50%,Gemini与Claude加速追赶
OpenAI提速狂飙16倍!GPT-5.6多智能体V2上线,741轮怪物对话1秒打开
“十五五”时期 煤矿危险繁重岗位将由机器人替代
waytouniverse/ppt-generator:从 Markdown 大纲生成风格统一的 PPT 图片