暂无图片
什么是Oracle数据库的闩?
我来答
分享
三阳
2023-01-29
什么是Oracle数据库的闩?

如何才能实现协调避免?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新

闩(latch)是一种锁,它是保护Oracle的共享数据结构的一种串行化设备。共享池是系统全局区(System Global Area,SGA)中一个庞大的共享数据结构,Oracle正是在这里存储已解析、已编译的SQL。修改这个共享结构时,必须注意一次只允许一个进程访问。(如果两个进程或线程试图同时更新内存中相同的数据结构,会很糟糕,导致大量数据被破坏。)所以,Oracle采用了一种闩定(latching)机制,这是一种串行化访问的轻量级锁定方法。不要被“轻量级”这个词蒙住了,作为串行化设备,闩一次只允许一个进程操作内存中的数据结构。数据库在硬解析时会大量使用共享池中的闩,当应用设计不当时,它们就会成为用户频繁争抢的目标。试图同时硬解析语句的用户越多,性能就会变得越差。执行SQL时的解析越多,对共享池的闩竞争就越厉害,等待的队列排得越长,时间也越久。

暂无图片 评论
暂无图片 有用 5
暂无图片
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏