ITPub博客

首页 > 数据库 > Oracle > oracle assm(自动段管理)为什么可以提高插入并发(散记)

oracle assm(自动段管理)为什么可以提高插入并发(散记)

原创 Oracle 作者:wanglinghua0907 时间:2024-01-17 11:14:03 0 删除 编辑

浅显的理解(有问题的):

mssm所有段操作都在修改freelist,大批量操作会引起争用。而assm由L1/L2/L3管理块,

一般L3可以管16个块(多的64也有),假如L2管200个那这一层就3200了,同时3200个

进程一起插入操作没问题,随机分配到3200个块里。小无敌。


深刻的理解:

1.L3到L2不是随机的,L2到L1是随机的。L2到L1的随机是在高水位线之下的。

2.建好表空间后,把某表的分配区大小改90m的时候,L1块数从64增加到了256个。

3.assm判断从哪个块插入的步骤,插入:数据字典确定L3——L2——随机一个高水位

下的L1——L1下的随机块——插入块

4.全表扫描的流程,查询:根据数据字典视图(dba_segments)找到L3——L3里的

区地图(Extent Map)——辅助地图(Auxillary Map)——具体L1——具体块


1.

我 是 这 样 想 到 原 因 的 , 我 曾 经 做 过 直 接 路 径 插 人 的 测 试 , 这 个 测 试 验 证 了 如 果 进 行 直 接 路 径 插 人 , 每 次 会 在 高 水 点 之 上 分 配 空 间 , 如 果 提 交 , 则 修 改 高 水 点 。 如 果 不 提 交 咩 则 不 修 改 高 水 点 , 通 过 这 种 方 式 可 减 少 UNDO 的 耗 用 。 而 普 通 的 插 人 则 是 在 高 水 点 之 下 寻 找 空 间 。 我 们 一 直 没 有 提 过 高 水 点 。 直 接 路 径 都 是 在 高 水 点 之 上 插 人 的 , 那 么 间 接 路 径 呢 ? 肯 定 是 在 高 水 点 之 下 了 。 好 , 答 案 已 经 见 分 晓 了 。 高 水 点 肯 定 在 第 192 号 块 。 因 为 第 二 个 LI 块 中 的 数 据 块 , 都 在 高 水 点 之 上 , 因 此 , 第 二 个 LI 块 中 的 数 据 块 不 会 被 插 人 算 法 选 择 到 。

v9 : .zrq 91LZ : svotqt : .зха : zaxeds тохо з Бет 00000000х0 О : : :1ареан зиаахз преан тот зиоэ зиэзхз

2.

SQL> create tablespace tbs_tsl datafile •reuse uniform size 1m: Tablespace created. /uOI/DiskI/tbs tsI 01. dbf' size 100m SQL> create table tablel (id int, name varchar2 (20)) tablespace tbs tsI; Table created. SQL> alter table tablel allocate extent Table altered. (size 90m) ;

3.

Oracle 是 如 何 使 用 4 层 树 状 结 构 ( 3 层 位 图 块 + 数 据 块 ) 来 确 定 向 哪 个 块 中 插 人 的 呢 ? 第 一 步 , 查 找 数 据 字 典 ( 就 是 dba_segments 数 据 字 典 视 图 的 基 表 ) , 确 定 段 头 位 置 。 第 二 步 , 在 段 头 中 找 到 第 一 个 L2 块 位 置 信 息 。 第 三 步 , 到 L2 块 中 根 据 执 行 插 人 操 作 进 程 的 PID 号 , 做 HASH 运 算 , 得 到 一 个 随 机 数 N , 在 L2 中 , 找 到 第 N 个 L ] 块 的 位 置 信 息 。 第 四 步 , 到 第 三 步 中 确 定 的 凵 块 中 , 再 根 据 执 行 插 人 操 作 进 程 的 PID 号 , 做 HASH 运 算 , 得 到 一 个 随 机 数 M, 在 凵 中 找 到 第 M 号 数 据 块 。 第 五 步 , 向 第 M 号 数 据 块 中 插 人 。 L3 块 中 虽 然 可 以 有 多 个 L2 块 , 但 插 人 操 作 不 会 选 择 多 个 L2 块 , 每 次 只 会 选 择 同 一 个 L2 块 。 直 到 这 个 L2 块 下 面 的 所 有 数 据 块 都 被 插 满 了 , 才 会 选 择 下 一 个 L2 块 。 在 L2 中 选 择 某 个 凵 的 时 候 , 就 是 随 机 的 了 。 不 同 Session , 只 要 有 可 能 , 就 会 被 分 配 到 不 同 的 凵 中 。 在 Ll 中 找 数 据 块 时 也 是 一 样 。

4.

Extent Map øxøløøøøbø ØxØIØØØØb8 exuøøøøcø øxø1øøøøc8 ØxØIØØØØdØ exuøøøød8 øxøløøøøeø øxø1øøøøe8 exuøøøøfø øxø1øøøøf8 øxøløøøløø øxøløøøllø øxø1øøø118 exuøøø12ø øxø1øøø128 øxØ1øøø18Ø exuøøøzøø øxø1øøø28ø øxø1øøø3øø exuøøø38ø øxØ1øøø48ø exuøøøsøø øxøløøøssø Auxiliary map Extent Extent Extent Extent Extent 1 2 3 4 length: length: length: length: length: length: length: length: length: length: length: length: length: length: length: length: length: length: length: length: length: length: length: length: length: LI Ll LI 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 128 128 128 128 128 128 128 128 128 dba: dba: dba: dba: dba: øxøleeeebø øxmeeeebø øxøleeeecø øxøleeeecø exeleeeede Data Data Data Data dba: dba: dba: dba: dba: exe1eeeeb3 exueeeeb8 exeleeeecl exe1eeeec8 exeleeeedl


本文从Oracle内核技术揭秘_吕海波中理解




来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69980685/viewspace-3004177/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE、sql server、oceanbase数据库专家,拥有7年以上的大型数据库运维经验,主方向oracle,擅长故障排除、诊断,大体量(TB)迁移,异常故障修复等。拥有丰富主导大型项目经验。服务行业包括:运营商、银行、金融业、政府单位、医疗、制造业、高校等等。

注册时间:2020-07-31

  • 博文量
    116
  • 访问量
    88776