暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 闩(Latch)

怪力乱神 2024-01-13
171

Latch简介

对于对称多处理机(SMP)系统而言,在同一时间点,所有CPU都可以请求修改同一内存。在理想状态下,“请求”“更改”操作是由单个CPU独立完成的,而不会被拆分成多个时间片处理。在特殊情况下,“请求”“更改”操作将被拆分成多个时间片处理,这时操作系统就会使用上下文结构来保护内存数据的完整性。

Oracle闩(Latch)的作用与上下文类似,主要是用于保护Oracle内存结构将被独占访问、修改,以防止非法的内存数据篡改,保证内存数据的完整性。常见的Latch有:

- Library Cache Latch:保护 Library Cache 内存结构;
- Shared Pool Latch:保护 Shared Pool 内存结构;
- Cache Buffers Chain Latch:保护 Cache Buffers Chain 内存结构;
- Cache Buffers LRU Chain Latch:保护 Cache Buffers LRU Chain Latch 内存结构;

Latch Level

当CPU执行作业的时候,操作系统可以通过中断、异常等方式来“打断”CPU当前正在执行的任务。从而将CPU资源释放出来供更优先的进程使用。

Oracle Latch Level 功能与优先级类似,主要用于 Latch 资源的调度。Latch Level 的特点如下:

- Latch Level 被预定义在 Oracle 系统中;
- Latch Level 范围在 0~16 之间(11g);
- Latch Level 用于调度保护内存结构,缓解修改内存结构时产生的Latch争用。

可以通过查询 v$latch 获取 Latch Level 相关信息:

select l.LEVEL#, name
from v$latch l
where name in (
'session switching',
'cache buffers chains',
'cache buffers lru chain',
'dml lock allocation',
'redo copy',
'checkpoint queue latch',
'buffer pin latch',
'shared pool',
'post/wait queue',
'SGA pool locks',
'SGA table lock',
'shared pool simulator',
'resmgr:vc list latch',
'rm cas latch'
) order by level#;

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论