请教各位老大此处等待为什么是library cache pin而不是library cache lock?

[复制链接]
查看11 | 回复1 | 2019-6-14 14:49:06 | 显示全部楼层 |阅读模式
本帖最后由 yueli33 于 2020-11-29 15:49 编辑
会话1test1用户执行:
Create or replace procedure dummy is
begin
null;
end;
/

Begin
Dummy;
Dbms_lock.sleep(1000);
End;
/
会话2test1用户执行
alter procedure test1.dummy compile;
此时,会话2的等待事件是library cache pin,而不是library cache lock。
麻烦请教各位老大,此时产生的为什么是library cache pin而不是library cache lock?
11.2.0.4和19.3.0.0.0现象是一样的。
谢谢!

回复

使用道具 举报

千问 | 2019-6-14 14:49:06 | 显示全部楼层
1. 第一个事务持有的是共享pin
2. 第二DDL持有的是排它pin
3. 如果这个时候再有一个DDL无法获取到pin时则会认为是lock.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行