[20190415]10g下那些latch是共享的.txt

http://andreynikolaev.wordpress.com/2010/11/23/shared-latches-by-oracle-version/

--//oracle并没有文档准确说明那些latch是支持共享,作者的链接通过使用orderbug手工调用kslgetsl()函数(10g)或者kslgetsl_w()函
--//数(11g),确定那些latch支持共享模式.我仅仅重复测试看看.

1.环境:
SYS@test> @ &r/ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- ----------------------------------------------------------------
x86_64/Linux 2.4.xx            10.2.0.4.0     Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi

2.建立测试脚本:
--//drop table shared_latches purge;
create table shared_latches(
  version varchar2(50),   /* Oracle version */
  latch# number,          /* latch# */
  name   varchar2(200),   /* ltach name */
  shared varchar2(1)      /* if 'Y' then latch is shared  */
);
--//建立表shared_latches.

spool list_shared_latches.sh
select 'sqlplus /nolog @is_latch_shared 0x'||addr||' '||latch#||' "'||translate(name,'''',' ')||'"'
   from v$latch_parent;
spool off
--//获得latch list.仅仅测试latch parent就ok了.适当编辑整理脚本.

$ cat is_latch_shared.sql
/*
     This file is part of demos for "Contemporary Latch Internals" seminar v.24.08.2010
     Copyright:   (c) Andrey S. Nikolaev (Andrey.Nikolaev@rdtex.ru) RDTEX
     http://AndreyNikolaev.wordpress.com
     for 32bit Oracle 10g and above
*/
connect / as sysdba
set verify off
WHENEVER SQLERROR EXIT;
set pagesize 0

alter session set max_dump_file_size=0;
/*
   before 11g shared latch get function was named kslgetsl()
   in 11g - kslgetsl_w()
*/
col shared_latch_function new_value shared_latch_function
var db_v varchar2(100);
var db_comp varchar2(100);
begin dbms_utility.db_version(:db_v,:db_comp); end;
/
select decode(sign(replace(:db_v,'.','')-110000),1,'kslgetsl_w', 'kslgetsl') shared_latch_function from dual;
--//11g use kslgetsl_w,other use kslgetsl.

oradebug setmypid
/* try to get latch as shared in S mode */
oradebug call &shared_latch_function &1 1 2 3 8
/* if ORA-00600: [545] was raised in previous statement then latch was exclusive.  The error terminates the script */
/* free the latch */
oradebug call kslfre &1
/* if we are here, the latch was shared */
insert into shared_latches(version,latch#,name,shared) select version,latch#,name,'Y' from v$latch,v$instance where latch#=&2;
commit;
exit

--//说明:作者利用oradebug调用报错,后面的插入语句不会执行,来完整获得那些shared latch的列表.

3.执行:
$ . list_shared_latches.sh > /dev/null
--//略.

4.结果:
SYS@test> select * from shared_latches;
VERSION        LATCH# NAME                                     S
---------- ---------- ---------------------------------------- -
10.2.0.4.0          7 session idle bit                         Y
10.2.0.4.0          8 client/application info                  Y
10.2.0.4.0         35 resmgr group change latch                Y
10.2.0.4.0         36 channel handle pool latch                Y
10.2.0.4.0         37 channel operations parent latch          Y
10.2.0.4.0         38 message pool operations parent latch     Y
10.2.0.4.0         51 SGA mapping latch                        Y
10.2.0.4.0         52 active service list                      Y
10.2.0.4.0         97 name-service namespace bucket            Y
10.2.0.4.0        101 gcs remastering latch                    Y
10.2.0.4.0        102 gcs partitioned table hash               Y
10.2.0.4.0        103 gcs pcm hashed value bucket hash         Y
10.2.0.4.0        106 recovery domain hash list                Y
10.2.0.4.0        109 Memory Management Latch                  Y
10.2.0.4.0        118 buffer pool                              Y
10.2.0.4.0        122 cache buffers chains                     Y
10.2.0.4.0        131 object queue header operation            Y
10.2.0.4.0        150 KCL gc element parent latch              Y
10.2.0.4.0        193 In memory undo latch                     Y
10.2.0.4.0        194 KTF sga latch                            Y
10.2.0.4.0        196 Change Notification Hash table latch     Y
10.2.0.4.0        204 global KZLD latch for mem in SGA         Y
10.2.0.4.0        207 Policy Refresh Latch                     Y
10.2.0.4.0        208 Policy Hash Table Latch                  Y
10.2.0.4.0        209 OLS label cache                          Y
10.2.0.4.0        210 instance information                     Y
10.2.0.4.0        211 policy information                       Y
10.2.0.4.0        212 global ctx hash table latch              Y
10.2.0.4.0        221 library cache hash chains                Y
10.2.0.4.0        229 resmgr:active threads                    Y
10.2.0.4.0        238 resmgr:plan CPU method                   Y
10.2.0.4.0        244 Shared B-Tree                            Y
10.2.0.4.0        245 Memory Queue                             Y
10.2.0.4.0        246 Memory Queue Subscriber                  Y
10.2.0.4.0        271 JOX SGA heap latch                       Y
10.2.0.4.0        284 hash table column usage latch            Y
10.2.0.4.0        291 compile environment latch                Y
10.2.0.4.0        314 KWQP Prop Status                         Y
10.2.0.4.0        315 AQ Propagation Scheduling Proc Table     Y
10.2.0.4.0        316 AQ Propagation Scheduling System Load    Y
10.2.0.4.0        319 rules engine rule set statistics         Y
10.2.0.4.0        320 rules engine rule statistics             Y
10.2.0.4.0        325 kwqbsn:qsga                              Y
10.2.0.4.0        327 bufq statistics                          Y
10.2.0.4.0        329 queue sender's info. latch               Y
10.2.0.4.0        330 bq:time manger info latch                Y
10.2.0.4.0        333 KWQMN job cache list latch               Y
10.2.0.4.0        334 KWQMN to-be-Stopped Buffer list Latch    Y
10.2.0.4.0        392 JS Sh mem access                         Y
10.2.0.4.0        393 PL/SQL warning settings                  Y
50 rows selected.

--//我导入作者的测试结果在链接https://andreynikolaev.wordpress.com/上可以找到.
--//https://andreynikolaev.wordpress.com/summary-tables/shared_latches-ctl/
--//10.2.0.4.0结果如下:
SYS@book> select count(*) from  scott.shared_latches where version='10.2.0.4.0';
  COUNT(*)
----------
        51

--//相差1个.

SYS@192.168.100.33:1521/test> @ ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- ----------------------------------------------------------------
x86_64/Linux 2.4.xx            10.2.0.4.0     Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi

SYS@192.168.100.33:1521/test> @ laddr.sql 'parameter table allocation management'
ADDR             NAME
---------------- ----------------------------------------
0000000060009298 parameter table allocation management

SYS@book> select * from scott.shared_latches where version='10.2.0.4.0' minus select * from sys.shared_latches@test033;
VERSION        LATCH# NAME                                     S
---------- ---------- ---------------------------------------- -
10.2.0.4.0         15 parameter table allocation management    Y

--//我手工执行发现报错,
SYS@192.168.100.33:1521/test> oradebug setmypid
Statement processed.

SYS@192.168.100.33:1521/test> oradebug call kslgetsl 0x0000000060009298 1 2 3 8
ORA-00600: internal error code, arguments: [545], [0x060009298], [15], [8], [], [], [], []

[20190415]10g下那些latch是共享的.txt的更多相关文章

  1. [20190415]11g下那些latch是共享的.txt

    [20190415]11g下那些latch是共享的.txt http://andreynikolaev.wordpress.com/2010/11/23/shared-latches-by-oracl ...

  2. [20190416]11g下那些latch是Exclusive的.txt

    [20190416]11g下那些latch是Exclusive的.txt --//昨天测试了11g下那些latch是共享的,链接:--//是否反过来剩下的都是Exclusive的.继续测试: 1.环境 ...

  3. oracle 10g下范围分区扫描的几种方式

    oracle 10g下有几种扫描方式,注意最后一种扫描方式,当对分区的列进行计算时,会不走分区.这跟对索引列进行计算会导致无法用索引一样. --扫描单个分区  PARTITION RANGE SING ...

  4. Mac、Linux下两个Emacs共享一个配置文件

    Mac.Linux下两个Emacs共享一个配置文件 有些嵌入式的实验需要在Linux进行,就安装了RHEL6.4的虚拟机,下载并编译了Emacs. 在Linux的.emacs文件中加入以下语句,即可引 ...

  5. 阿里云服务器win2003下iis整合tomcat共享80端口

    阿里云服务器win2003下iis整合tomcat共享80端口 很多机器都用tomcat跟IIS部署不同网站.最近买了阿里云的服务器.于是也想玩一下.网上百度了很多方法.但是都有缺陷说的不是很清楚.通 ...

  6. [20190319]shared pool latch与library cache latch的简单探究.txt

    [20190319]shared pool latch与library cache latch的简单探究.txt --//昨天看Oracle DBA手记3:数据库性能优化与内部原理解析.pdf 电子书 ...

  7. [20190416]完善shared latch测试脚本2.txt

    [20190416]完善shared latch测试脚本2.txt --//昨天测试shared latch,链接:http://blog.itpub.net/267265/viewspace-264 ...

  8. [20190505]关于latch 一些统计信息.txt

    [20190505]关于latch 一些统计信息.txt --//我在两篇文章,提到一些latch的统计信息.链接如下:http://blog.itpub.net/267265/viewspace-2 ...

  9. [20190423]简单测试latch nowilling等待模式.txt

    [20190423]简单测试latch nowilling等待模式.txt --//我对这个问题的理解就是如果参数willing=0,表示无法获取该latch,直接退出,再寻找类似的latch.--/ ...

随机推荐

  1. [Swift]LeetCode738. 单调递增的数字 | Monotone Increasing Digits

    Given a non-negative integer N, find the largest number that is less than or equal to Nwith monotone ...

  2. mybatis-generator XML Parser Error on line 38: 必须为元素类型 "table" 声明属性 "enableInsertByPrimaryKey"。

    1. 解决方法 在 table 元素中删除属性 enableInsertByPrimaryKey 即可.就是这么神奇... 2. 情景重现 使用 mybatis-generator 插件生成代码时报错 ...

  3. [Reversing.kr] Easy Crack Writeup

    题目:http://reversing.kr/ Easy Crack IDA打开.分析可知Sub_401080是关键函数.F5后. 当满足 则跳转成功.拼接后得到flag flag: Ea5yR3ve ...

  4. Visual Studio 2017 怎么将自动生成属性设置为旧版格式

    工具:Visual Studio 2017 1.点击工具,进入选项 2.选项窗口左侧找到C#--代码样式,点击 3.找到表达式首选项中:使用属性的表达式主体.使用索引器的表达式主体和使用访问器的表达式 ...

  5. Java面向对象--类的对象之间的几种关系详解

    转载: https://www.cnblogs.com/supren/p/7853377.html

  6. requirejs、vue、vuex、vue-route的结合使用,您认为可行吗?

    在五一节之前和一网友讨论前端技术时,对方提到vue.vue-route如果配合requirejs应用.当时的我没有想得很明白,也没能这位网友一个准确的回复,但我许诺于他五一研究后给他一个回复.本是一天 ...

  7. 使用docker-compose来部署开发环境

    docker-compose的作用 docker-comopse可以帮助我们快速搭建起开发环境,比如你可以去把redis,mongodb,rabbitmq,mysql,eureka,configser ...

  8. 【Java基础】【14正则表达式&常用工具类】

    14.01_常见对象(正则表达式的概述和简单使用) A:正则表达式 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串.其实就是一种规则.有自己特殊的应用. 作用:比如注册邮箱,邮箱有 ...

  9. Perl线程队列:Thread::Queue

    (Thread::Queue)队列数据结构(FIFO)是线程安全的,它保证了某些线程从一端写入数据,另一些线程从另一端读取数据.只要队列已经满了,写入操作就自动被阻塞直到有空间支持写操作,只要队列空了 ...

  10. Python3.7 dataclass使用指南

    本文将带你走进python3.7的新特性dataclass,通过本文你将学会dataclass的使用并避免踏入某些陷阱. dataclass简介 dataclass的使用 定义一个dataclass ...