外语类 | 雅思 托福 四级 六级 专四专八 | 学历类 | 成考 高考 自考 考研 | 工程类 | 监理 质量 结构 安全 | 一级建造师 二级建造师 | 考试论坛
医学类 | 护士 药师 医师 外贸类 报关员 | 职业类 | 保险 司法 证券 导游 | 会计类 | 初级 中级 高级 注会 | 会计证考试 公务员考试 | 计算机类
资讯动态(行业新闻 考试动态) | 报考指南 | 应用技术辅导 | 考试题库 | 综合辅导 | 心得技巧 | 考试培训 | 考试论坛
考试中国—计算机频道网址:it.kswchina.com 这里有:计算机的各种等级和认证考试,一级,二级,三级,四级等多种等级认证的考试资料。
您现在的位置: 考试中国 >> 计算机 >> Oracle >> 综合辅导 >> 正文 考试网中国:www.kswchina.com
ibrarycachepin与PROCEDURE的重建
更新时间:2008-11-17  Oracle认证考试  收藏此文  收藏"考试中国"
    前面提到,Oracle10g重建Procedure的处理有所增强,最初看到这个增强的时候,我想这个增强是否可以减少困扰已久的Library Cache的竞争呢?
  我们看一下以下测试,首先在第一个session执行操作:
  SQL> create or replace PROCEDURE pining
  IS
  BEGIN
  NULL;
  END;
  /
  Procedure created.
  SQL>
  SQL> alter session set nls_date_format=’yyyymmdd hh24:mi:ss’;
  Session altered.
  SQL> create or replace procedure calling
  is
  begin
  pining;
  sys.dbms_lock.sleep(60);
  end;
  /
  Procedure created.
  SQL>
  SQL> col object_name for a30
  SQL> select object_name,last_ddl_time from dba_objects where object_name in (’PINING’,’CALLING’);
  OBJECT_NAME LAST_DDL_TIME
  CALLING 20070402 09:12:57
  PINING 20070402 09:12:57
  SQL>
  SQL> exec calling;
  此时Calling对于Pining的引用将会在Pining的Body上获得共享Pin,此时在另外一个Session执行重建Procedure的操作:
  SQL> create or replace PROCEDURE pining
  IS
  BEGIN
  NULL;
  END;
  /
  这个操作将一直挂起,直到第一个session的操作完成,此时在第三个session可以观察到Library Cache Pin的竞争:
  SQL> select sid,event from v$session where username=’EYGLE’
  2 /
  SID EVENT
  137 library cache pin
  139 PL/SQL lock timer
  157 SQL*Net message to client
  当第一个session执行完成之后,第二个session的操作随之完成,我们可以看到LAST_DDL_TIME并未改变:
  SQL> exec calling;
  PL/SQL procedure successfully completed.
  SQL>
  SQL> select object_name,last_ddl_time from dba_objects where object_name in (’PINING’,’CALLING’);
  OBJECT_NAME LAST_DDL_TIME
  CALLING 20070402 09:12:57
  PINING 20070402 09:12:57
  实际上session 2执行了一次无谓的Library Cache Pin,理想的方式应该是,Oracle能够判断之前的Library Cache Pin的模式,如果是共享模式,则可以跳过Pin请求,如果是排他模式,则必须等待,目前的处理并不能从实质上改变竞争。
  不过并非全无益处,考试@大发现,对于另一类DDL操作,Oracle完全可以跳过Library Cache Pin的请求,这类操作是Grant,在以前版本中的行为可以参考:
  在Oracle10g中,Grant授权操作无需再获得Library Cache Pin的排他锁,我们看以下测试:
  在Session 1中执行:
  09:40:18 SQL> drop procedure calling;
  Procedure dropped.
  09:40:18 SQL>
  09:40:18 SQL> drop procedure pining;
  Procedure dropped.
  09:40:18 SQL>
  09:40:18 SQL> create or replace PROCEDURE pining
  IS
  BEGIN
  NULL;
  END;
  /
  Procedure created.
  09:40:18 SQL>
  09:40:18 SQL> alter session set nls_date_format=’yyyymmdd hh24:mi:ss’;
  Session altered.
  09:40:18 SQL> create or replace procedure calling
  is
  begin
  pining;
  dbms_lock.sleep(60);
  end;
  /
  Procedure created.
  09:40:18 SQL>
  09:40:18 SQL> col object_name for a30
  09:40:18 SQL> select object_name,last_ddl_time from dba_objects where object_name in (’PINING’,’CALLING’);
  OBJECT_NAME LAST_DDL_TIME
  CALLING 20070402 09:40:18
  PINING 20070402 09:40:18
  09:40:18 SQL>
  09:40:18 SQL> exec calling;
  在Session 2执行授权:
  SQL> set time on
  09:40:22 SQL> grant execute on pining to sys;
  Grant succeeded.
  09:40:22 SQL>
  我们看到Session 2的授权顺利通过,再转到Session 1:
  09:40:18 SQL> exec calling;
  PL/SQL procedure successfully completed.
  09:41:18 SQL>
  09:41:18 SQL> select object_name,last_ddl_time from dba_objects where object_name in (’PINING’,’CALLING’);
  OBJECT_NAME LAST_DDL_TIME
  CALLING 20070402 09:40:18
  PINING 20070402 09:40:22
  我们看到对象PINING的LAST_DDL_TIME已经变化。
  看来Grant已经能够绕过了Library Cache Pin的竞争,这是Oracle10g的增强。
责任编辑:仰易
回全站首页      计算机考试专题--点击进入
相关文章
ubuntu常用命令集合
利用多核多线程进行程序优化
从Linux命令行更新Twitter和FriendFeed
对话 UNIX: 更多 shell 脚本技术
不必害怕Ubuntu的命令行
4步用XAMPP快速搭建LAMP环境
微软认证:windows必须掌握的八个DOS命令
Windows也能拥有Ubuntu酷炫特效
栏目推荐
微软认证真题
· 微软认证考试:70064Windows95考生回顾
· 微软的面试题及答案(超变态但很经典
· 微软认证考试:70064Windows95考生回顾
· 微软认证考试:70064Windows95考生回顾
· 微软认证考试:70064Windows95考生回顾
· [MCSE真题]正确配置IP地址以排错考题
Oracle认证真题
· 八、管理信息基本概念
· CCNA最新模拟考试题
· 网络管理员6道企业实战难题
· 思科Cisco认证最新真题50道:TCP/IP
· 关于Cisco路由协议题和答案(中文)
· Cisco试题库:ccna最新真题
Linux认证真题
· ubuntu常用命令集合
· 利用多核多线程进行程序优化
· 从Linux命令行更新Twitter和FriendFe
· 对话 UNIX: 更多 shell 脚本技术
· 不必害怕Ubuntu的命令行
· 4步用XAMPP快速搭建LAMP环境
JAVA认证真题
· JAVA题库:JAVA面试题目整理
· SCJP认证套题解析之二
· SCJP认证套题解析之一
· SCJP考试题310-025(第二套)
· SCJP考试题310-025(第二套<1>)18-147
· SCJP考试题310-025(第二套<3>)51-91/
网站简介 | 服务条款 | 汇款方式 | 广告合作 | 发布优势 | 招聘人才 | 隐私保护 | 合作伙伴 | 友情链接 | 网站导航 | 帮助中心 |
COPYRIGHT (C) 2003-2008 BEIJING KSWCHINA.COM INC ◎ 考试中国 ALL RIGHTS RESERVED.网站法律顾问:姚克枫律师
《中华人民共和国电信与信息服务业务》信息产业 京ICP备06046971号 技术支持:嘉瑞恒通(北京)科技有限公司。