[20211025]12c sequence nocache测试补充.txt --//上午做了12c sequence nocache测试,出现以前从来没有遇到的row cache mutex等待事件,下午在仔细探究看看。 1.环境: SCOTT@test01p> @ ver1 PORT_STRING VERSION BANNER CON_ID ------------------------------ -------------- -------------------------------------------------------------------------------- ---------- IBMPC/WIN_NT64-9.1.0 12.2.0.1.0 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 0 create table job_times (sid number, time_ela number,method varchar2(20)); create sequence seq1 nocache; SCOTT@test01p> @ ddl scott.seq1 C300 ------------------------------------------------------------------------------------------------------------------------------------------------------------------ CREATE SEQUENCE "SCOTT"."SEQ1" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 NOCACHE NOORDER NOCYCLE NOKEEP NOSCALE GLOBAL ; $ cat m14.txt set verify off --//host sleep $(echo &&3/50 | bc -l ) variable vmethod varchar2(20); exec :vmethod := '&&2'; insert into job_times values ( sys_context ('userenv', 'sid') ,dbms_utility.get_time ,:vmethod) ; commit ; declare v_id number; v_d date; v_val VARCHAR2(1000); l_count PLS_INTEGER; begin for i in 1 .. &&1 loop --//select value into v_val from v$nls_parameters where parameter = 'NLS_CHARACTERSET'; --//select value into v_val from nls_database_parameters where parameter = 'NLS_CHARACTERSET'; --//select sql_text into v_val from v$sql where rownum=1; SELECT /* &&3 */ seq1.NEXTVAL into v_id FROM DUAL; end loop; end ; / update job_times set time_ela = dbms_utility.get_time - time_ela where sid=sys_context ('userenv', 'sid') and method=:vmethod; commit; quit 2.测试: $ alias zzdate alias zzdate='date +'\''trunc(sysdate)+%H/24+%M/1440+%S/86400 == %Y/%m/%d %T'\''' $ zzdate;seq 20 | xargs -I{} -P 20 sqlplus -s -l scott/book@test01p @m14.txt 1e4 P=20 {} 1 >/dev/null;zzdate trunc(sysdate)+16/24+36/1440+41/86400 == 2021/10/25 16:36:41 trunc(sysdate)+16/24+37/1440+01/86400 == 2021/10/25 16:37:01 SYS@test01p> @tpt/ashtop event,sql_id "module='SQL*Plus' and username='SCOTT'" trunc(sysdate)+16/24+36/1440+41/86400 trunc(sysdate)+16/24+37/1440+01/86400 Total Seconds AAS %This EVENT SQL_ID FIRST_SEEN LAST_SEEN --------- ------- ------- ---------------------------------------- ------------- ------------------- ------------------- 334 16.7 89% | row cache lock 9cp836a3k67w2 2021-10-25 16:36:43 2021-10-25 16:37:00 38 1.9 10% | row cache mutex 9cp836a3k67w2 2021-10-25 16:36:42 2021-10-25 16:37:00 3 .2 1% | log file sync 2021-10-25 16:36:41 2021-10-25 16:36:41 1 .1 0% | 9cp836a3k67w2 2021-10-25 16:36:52 2021-10-25 16:36:52 --//有点奇怪的是我前面写的注解丢失了,不知道为什么。SELECT /* &&3 */ seq1.NEXTVAL into v_id FROM DUAL;. SYS@test01p> @tpt/ashtop event,sql_id,p1,p2,p3 "module='SQL*Plus' and username='SCOTT' and event like 'row cache%'" trunc(sysdate)+16/24+36/1440+41/86400 trunc(sysdate)+16/24+37/1440+01/86400 Total Seconds AAS %This EVENT SQL_ID P1 P2 P3 FIRST_SEEN LAST_SEEN --------- ------- ------- ---------------- ------------- --- --- --- ------------------- ------------------- 334 16.7 90% | row cache lock 9cp836a3k67w2 13 0 5 2021-10-25 16:36:43 2021-10-25 16:37:00 21 1.1 6% | row cache mutex 9cp836a3k67w2 13 19 0 2021-10-25 16:36:42 2021-10-25 16:36:59 7 .4 2% | row cache mutex 9cp836a3k67w2 13 31 0 2021-10-25 16:36:45 2021-10-25 16:37:00 6 .3 2% | row cache mutex 9cp836a3k67w2 13 13 0 2021-10-25 16:36:43 2021-10-25 16:36:55 4 .2 1% | row cache mutex 9cp836a3k67w2 13 11 0 2021-10-25 16:36:47 2021-10-25 16:36:57 SYS@test01p> @ ev_name 'row cache lock' SYS@test01p> @ prxx ============================== EVENT# : 328 EVENT_ID : 1714089451 NAME : row cache lock PARAMETER1 : cache id PARAMETER2 : mode PARAMETER3 : request WAIT_CLASS_ID : 3875070507 WAIT_CLASS# : 4 WAIT_CLASS : Concurrency DISPLAY_NAME : row cache lock CON_ID : 0 PL/SQL procedure successfully completed. --//先不探究row cache lock等待事件。 SYS@test01p> @ ev_name 'row cache mutex' SYS@test01p> @ prxx ============================== EVENT# : 327 EVENT_ID : 306610566 NAME : row cache mutex PARAMETER1 : cache id PARAMETER2 : where requested PARAMETER3 : WAIT_CLASS_ID : 3875070507 WAIT_CLASS# : 4 WAIT_CLASS : Concurrency DISPLAY_NAME : row cache mutex CON_ID : 0 PL/SQL procedure successfully completed. --//PARAMETER1=cache id,PARAMETER2=where requested. SYS@test01p> select * from v$rowcache where cache#=13 2 @ prxx ============================== CACHE# : 13 TYPE : PARENT SUBORDINATE# : PARAMETER : dc_sequences COUNT : 9 USAGE : 9 FIXED : 0 GETS : 200008 FASTGETS : 0 GETMISSES : 9 SCANS : 0 SCANMISSES : 0 SCANCOMPLETES : 0 MODIFICATIONS : 200008 FLUSHES : 200008 DLM_REQUESTS : 0 DLM_CONFLICTS : 0 DLM_RELEASES : 0 CON_ID : 0 PL/SQL procedure successfully completed. --//说明发生在seq。 SYS@test01p> @ sqlid 9cp836a3k67w2 SQL_ID HASH_VALUE SQLTEXT ------------- ---------- --------------------------------- 9cp836a3k67w2 2267225986 SELECT SEQ1.NEXTVAL FROM DUAL --//不理解为什么把我的注解给丢失了。 SYS@test01p> column LOCATION format a40 SYS@test01p> select * from x$mutex_sleep where mutex_type='Row Cache' order by sleeps desc; ADDR INDX INST_ID CON_ID MUTEX_TYPE MUTEX_TYPE_ID LOCATION_ID LOCATION SLEEPS WAIT_TIME ---------------- ---------- ---------- ---------- ---------- ------------- ----------- -------------------------------- ------ ---------- 0000000031CD4298 3 1 0 Row Cache 4 19 [19] kqrpre 548 1892880 0000000031CD4178 1 1 0 Row Cache 4 31 [31] kqrcmt 54 165635 0000000031CD43B8 5 1 0 Row Cache 4 13 [13] kqreqd 37 103333 0000000031CD4448 6 1 0 Row Cache 4 11 [11] kqrget 17 29873 0000000031CD4328 4 1 0 Row Cache 4 17 [17] kqrCreateUsingSecondaryKey 6 20993 0000000031CD4208 2 1 0 Row Cache 4 25 [25] kqrpup 1 6 0000000031CD40E8 0 1 0 Row Cache 4 32 [32] kqrsfd 1 228 7 rows selected. --//猜测里面的LOCATION_ID=19,31,13,11 与前面P2一致。 SELECT * FROM ( SELECT mutex_addr, COUNT (*) FROM x$mutex_sleep_history WHERE mutex_type = 'Row Cache' GROUP BY mutex_addr ORDER BY 2 DESC) WHERE ROWNUM <= 5; MUTEX_ADDR COUNT(*) ---------------- ---------- 000007FF17AAB5F8 16 000007FF0A968A10 12 000007FF17DC7FF8 4 000007FF178581D0 3 000007FF13930D20 2 --//能力有限,先探究到这里,而且windows的版本工具有限,还是找一台linux的环境在测试看看。
[20211025]12c sequence nocache测试补充.txt
来源:这里教程网
时间:2026-03-03 17:05:07
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- B端,钉钉也许并非得心应手
B端,钉钉也许并非得心应手
26-03-03 - 电脑没声音了如何恢复?电脑没有声音在哪里设置
电脑没声音了如何恢复?电脑没有声音在哪里设置
26-03-03 - C盘系统文件提示损坏怎么办?系统文件损坏怎么修复
C盘系统文件提示损坏怎么办?系统文件损坏怎么修复
26-03-03 - 文件没保存怎么恢复?3种方法恢复未保存office文档
文件没保存怎么恢复?3种方法恢复未保存office文档
26-03-03 - 电脑没声音了如何恢复?电脑没有声音在哪里设置
电脑没声音了如何恢复?电脑没有声音在哪里设置
26-03-03 - 【SQL】Oracle数据库SQL监控报告示例
【SQL】Oracle数据库SQL监控报告示例
26-03-03 - RAC19c搭建-centos7+openfiler+multipath+udev
- 圆心科技冲刺IPO:独角兽也需要反思
圆心科技冲刺IPO:独角兽也需要反思
26-03-03 - 【OPTIMIZATION】Oracle影响优化器选择的相关技术
【OPTIMIZATION】Oracle影响优化器选择的相关技术
26-03-03 - 关于log file switch and checkpoint机制
关于log file switch and checkpoint机制
26-03-03
