-- Undokumentierte Parameter für public und private redo strands set lin 400 col name for a30 col wert for a10 col beschreibung for a100 SELECT i.ksppinm Name, sv.ksppstvl Wert, i.ksppdesc Beschreibung FROM x$ksppi i, x$ksppsv sv WHERE i.indx = sv.indx AND (i.ksppinm LIKE '%log%parallel%' OR i.ksppinm LIKE '%log%private%'); /* NAME WERT BESCHREIBUNG ------------------------------ ---------- -------------------------------------------- _log_parallelism_max 2 Maximum number of log buffer strands _log_parallelism_dynamic TRUE Enable dynamic strands _log_private_parallelism_mul 10 Active sessions multiplier to deduce number of private strands _log_private_mul 5 Private strand multiplier for log space preallocation */ SELECT * FROM v$sgastat WHERE name LIKE '%strand%'; /* POOL NAME BYTES ------------ ------------------------------ ---------- shared pool private strands 1907712 */ -- Die Anzahl der private redo strands errechnet sich aus den Parametern transactions und _log_private_parallelism_mul. show parameter transactions /* NAME TYPE VALUE ------------------------------------ ----------- ------------ transactions integer 272 transactions_per_rollback_segment integer 5 */ -- Für 272 Transaktionen werden bei einem Parallelitätsgrad von 10 also 27 private strands zur Verfügung gestellt. -- Ob eine Transaktion private strands benutzt, kann man ermitteln, wenn man ein bestimmtes Flag (Bit 13 der Spalte ktcxbflg in der Tabelle x$ktcxb) ausliest UPDATE scott.emp set sal = sal/2; SELECT DECODE(BITAND(ktcxbflg, 4096),0,1,0) used_private_strand, COUNT(*) FROM x$ktcxb WHERE BITAND(ksspaflg, 1) != 0 AND BITAND(ktcxbflg, 2) != 0 GROUP BY BITAND(ktcxbflg, 4096); USED_PRIVATE_STRAND COUNT(*) ------------------- ---------- 1 1 -- Die Tabelle x$kcrfstrand enthält Informationen über die public und private redo strands. -- Die private strands werden dynamisch aktiviert und deaktiviert. -- In diesem Beispiel sind nur 14 aktiv. SELECT indx , ptr_kcrf_pvt_strand adresse, TO_CHAR(strand_size_kcrfa/1024, '999g990d99') groesse_in_kb FROM x$kcrfstrand; /* INDX ADRESSE GROESSE_IN_KB ----- ---------------- --------------- 0 00 6.768,00 1 00 6.768,00 2 000007FFD9111054 65,00 3 000007FFD9122054 65,00 4 000007FFD9133054 65,00 5 000007FFD9145054 65,00 6 000007FFD9156054 65,00 7 000007FFD9167054 65,00 8 000007FFD9178054 65,00 9 000007FFD918A054 65,00 10 000007FFD919B054 65,00 11 000007FFD91AC054 65,00 12 000007FFD91BD054 65,00 13 000007FFD91CF054 65,00 14 000007FFD91E0054 65,00 15 000007FFD91F1054 65,00 16 000007FFD9202054 65,00 17 00 65,00 18 00 65,00 19 00 65,00 20 00 65,00 21 00 65,00 22 00 65,00 23 00 65,00 24 00 65,00 25 00 65,00 26 00 65,00 27 00 65,00 28 00 65,00 */ -- Die Summe der public strand-Größen entspricht in etwa der Größe des log_buffer-Parameters SELECT TO_CHAR(strand_size_kcrfa/1024, '999g990d99') groesse_in_kb, COUNT(*) FROM x$kcrfstrand GROUP BY strand_size_kcrfa; /* GROESSE_IN_kb COUNT(*) ------------- ---------- 6.768,00 2 65,00 27 */ SELECT TO_CHAR(value/1024, '999g990d99') FROM v$parameter WHERE name ='log_buffer'; -- 13.536,00 -- Jeder dieser Buffer hat einen eigenen redo allocation latch. SELECT addr, latch#, child#, name FROM v$latch_children WHERE name LIKE 'redo%' ORDER BY child#; ADDR LATCH# CHILD# NAME ---------------- ---------- ---------- -------------------- 000007FFD910D370 209 1 redo allocation 000007FFD910A460 208 1 redo copy 000007FFD910D410 209 2 redo allocation 000007FFD910A538 208 2 redo copy 000007FFD910A610 208 3 redo copy 000007FFD910D4B0 209 3 redo allocation 000007FFD910D550 209 4 redo allocation 000007FFD910A6E8 208 4 redo copy 000007FFD910A7C0 208 5 redo copy 000007FFD910D5F0 209 5 redo allocation 000007FFD910A898 208 6 redo copy 000007FFD910D690 209 6 redo allocation 000007FFD910A970 208 7 redo copy 000007FFD910D730 209 7 redo allocation 000007FFD910AA48 208 8 redo copy 000007FFD910D7D0 209 8 redo allocation 000007FFD910D870 209 9 redo allocation 000007FFD910D910 209 10 redo allocation 000007FFD910D9B0 209 11 redo allocation 000007FFD910DA50 209 12 redo allocation 000007FFD910DAF0 209 13 redo allocation 000007FFD910DB90 209 14 redo allocation 000007FFD910DC30 209 15 redo allocation 000007FFD910DCD0 209 16 redo allocation 000007FFD910DD70 209 17 redo allocation 000007FFD910DE10 209 18 redo allocation 000007FFD910DEB0 209 19 redo allocation 000007FFD910DF50 209 20 redo allocation 000007FFD910DFF0 209 21 redo allocation 000007FFD910E090 209 22 redo allocation 000007FFD910E130 209 23 redo allocation 000007FFD910E1D0 209 24 redo allocation 000007FFD910E270 209 25 redo allocation 000007FFD910E310 209 26 redo allocation 000007FFD910E3B0 209 27 redo allocation 000007FFD910E450 209 28 redo allocation 000007FFD910E4F0 209 29 redo allocation