02июн
Еще немного о буферном кэше, WS, списках буферов.
Ниже изложены некоторые наблюдения, которые в работе Вам не пригодятся. Но может быть будут Вам интересны.
Вы, наверняка, знаете, что буфера в буферном кэше распределены по WORKING SETS. WS - это подмножество буферов в буферном кеше.
Описание WS можно найти в таблице X$KCBWDS.

В каждом WS буфера управляются четырьмя LRU списками:
- LRU replacement list - собственно список LRU
- LRU-W write list - список грязных буферов
- LRU-XO object list – список буферов, которые подверглись командам DROP и TRUNCATE
- LRU-XR range list - список буферов, которые подверглись командам ALTER TABLESPACE BEGIN BACKUP, ALTER TABLESPACE END BACKUP,ALTER TABLESPACE OFFLINE, ALTER TABLESPACE READ ONLY
Каждый из этих четырех списков пребывает в двух ипостасях: main list (основной) и auxiliary list (вспомогательный). Вспомогательный список содержит грязные буфера, которые выявил DBWn, и буфера, которые уже были записаны. Буферы переносятся из основного во вспомогательный список DBWn процессом для того, чтобы избежать ненужного сканирования. Серверные процессы пользователя сканируют сначала вспомогательные списки на наличие свободных буферов. Буфера также помещаются во вспомогательный список во время старта базы данных и после FLUSH_CACHE.

Количество WS зависит от количества процессоров (CPU) в системе и количества сконфигурированных фоновых процессов DBWR. Параллельная работа на различных процессорах проходит без конкурентной борьбы благодаря тому, что каждый использует свой WS.
А теперь посмотрим как теория воплощается в практику.
Начнем с содержимого таблицы X$KCBWDS.
ADDR INDX INST_ID SET_ID DBWR_NUM BLK_SIZE PROC_GROUP CNUM_SET FLAG CKPT_LATCH CKPT_LATCH1 SET_LATCH NXT_REPL PRV_REPL NXT_REPLAX PRV_REPLAX CNUM_REPL ANUM_REPL COLD_HD HBMAX HBUFS NXT_WRITE PRV_WRITE NXT_WRITEAX PRV_WRITEAX CNUM_WRITE ANUM_WRITE NXT_XOBJ PRV_XOBJ NXT_XOBJAX PRV_XOBJAX CNUM_XOBJ ANUM_XOBJ NXT_XRNG PRV_XRNG NXT_XRNGAX PRV_XRNGAX CNUM_XRNG ANUM_XRNG BUF_GOT SUM_WRT SUM_SCN NUM_SCN HOT_SCN PIN_SCN WRT_MOV AUX_MOV FBWAIT WCWAIT BBWAIT FBINSP DBINSP PNINSP HOTMVS DBBCHG DBBGET CONGET PREAD PWRITE FGSDEPTH DBHDEPTH PROTCNT
---------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- ---------- ----------- ---------- ---------- ---------- ---------- ---------- -------------------------------------- -------------------------------------- ---------- -------------------------------------- -------------------------------------- ---------- ---------- ----------- ----------- -------------------------------------- -------------------------------------- ---------- ---------- ---------- ---------- -------------------------------------- -------------------------------------- ---------- ---------- ---------- ---------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- --------------------------------------
A437C814 0 1 1 0 8192 0 0 0 A437C814 A437C904 A437CB28 A437CC0C A437CC0C A437CC14 A437CC14 0 0 A437CC0C 0 0 A437CC28 A437CC28 A437CC30 A437CC30 0 0 A437CC44 A437CC44 A437CC4C A437CC4C 0 0 A437CC60 A437CC60 A437CC68 A437CC68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A437CCF0 1 1 2 0 8192 0 0 0 A437CCF0 A437CDE0 A437D004 A437D0E8 A437D0E8 A437D0F0 A437D0F0 0 0 A437D0E8 0 0 A437D104 A437D104 A437D10C A437D10C 0 0 A437D120 A437D120 A437D128 A437D128 0 0 A437D13C A437D13C A437D144 A437D144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A437D1CC 2 1 3 0 8192 0 0 0 A437D1CC A437D2BC A437D4E0 A437D5C4 A437D5C4 A437D5CC A437D5CC 0 0 A437D5C4 0 0 A437D5E0 A437D5E0 A437D5E8 A437D5E8 0 0 A437D5FC A437D5FC A437D604 A437D604 0 0 A437D618 A437D618 A437D620 A437D620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A437D6A8 3 1 4 0 8192 0 0 0 A437D6A8 A437D798 A437D9BC A437DAA0 A437DAA0 A437DAA8 A437DAA8 0 0 A437DAA0 0 0 A437DABC A437DABC A437DAC4 A437DAC4 0 0 A437DAD8 A437DAD8 A437DAE0 A437DAE0 0 0 A437DAF4 A437DAF4 A437DAFC A437DAFC 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A437DB84 4 1 5 0 8192 0 0 0 A437DB84 A437DC74 A437DE98 A437DF7C A437DF7C A437DF84 A437DF84 0 0 A437DF7C 0 0 A437DF98 A437DF98 A437DFA0 A437DFA0 0 0 A437DFB4 A437DFB4 A437DFBC A437DFBC 0 0 A437DFD0 A437DFD0 A437DFD8 A437DFD8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A437E060 5 1 6 0 8192 0 0 0 A437E060 A437E150 A437E374 A437E458 A437E458 A437E460 A437E460 0 0 A437E458 0 0 A437E474 A437E474 A437E47C A437E47C 0 0 A437E490 A437E490 A437E498 A437E498 0 0 A437E4AC A437E4AC A437E4B4 A437E4B4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A437E53C 6 1 7 0 8192 0 0 0 A437E53C A437E62C A437E850 A437E934 A437E934 A437E93C A437E93C 0 0 A437E934 0 0 A437E950 A437E950 A437E958 A437E958 0 0 A437E96C A437E96C A437E974 A437E974 0 0 A437E988 A437E988 A437E990 A437E990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A437EA18 7 1 8 0 8192 0 0 0 A437EA18 A437EB08 A437ED2C A437EE10 A437EE10 A437EE18 A437EE18 0 0 A437EE10 0 0 A437EE2C A437EE2C A437EE34 A437EE34 0 0 A437EE48 A437EE48 A437EE50 A437EE50 0 0 A437EE64 A437EE64 A437EE6C A437EE6C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A437EEF4 8 1 9 0 8192 0 15766 0 A437EEF4 A437EFE4 A437F208 8F7F5C5C 9AFEF1E0 917E9D6C 937E59DC 15766 87 93FDB038 7850 3805 A437F308 A437F308 A437F310 A437F310 0 0 A437F324 A437F324 A437F32C A437F32C 0 0 A437F340 A437F340 A437F348 A437F348 0 0 347397 220448 18768 48 752 0 1160 17608 0 0 12 495 492 1 4473 20052619 10666005 16786202 134497 220448 6280 3925 0
A437F3D0 9 1 10 0 8192 0 15766 0 A437F3D0 A437F4C0 A437F6E4 8FFF4C34 93FEAAA4 837F39D8 83FD61A4 15766 41 83FE17C4 7850 3752 A437F7E4 A437F7E4 A437F7EC A437F7EC 0 0 A437F800 A437F800 A437F808 A437F808 0 0 A437F81C A437F81C A437F824 A437F824 0 0 350890 225478 18775 45 912 0 897 17878 0 0 84 787 782 1 4219 21182730 11863862 19237137 134441 225478 6280 3925 0
A437F8AC 10 1 11 0 8192 0 15766 0 A437F8AC A437F99C A437FBC0 917E0914 9AFFF5D8 9A7E9A7C 987D4B9C 15766 108 8CFD7578 7850 3628 A437FCC0 A437FCC0 A437FCC8 A437FCC8 0 0 A437FCDC A437FCDC A437FCE4 A437FCE4 0 0 A437FCF8 A437FCF8 A437FD00 A437FD00 0 0 705895 225246 21370 55 1005 0 1215 20155 0 0 18 623 615 1 4033 21283861 11754346 26907013 134341 225246 6280 3925 0
A437FD88 11 1 12 0 8192 0 15765 0 A437FD88 A437FE78 A438009C 8C7F04F8 8A7E3758 87FEA05C 997DBA80 15765 68 907D2338 7850 3727 A438019C A438019C A43801A4 A43801A4 0 0 A43801B8 A43801B8 A43801C0 A43801C0 0 0 A43801D4 A43801D4 A43801DC A43801DC 0 0 347411 220678 9821 45 503 0 929 8892 0 0 18 720 718 0 4576 20508451 10899292 16880477 134386 220678 6280 3925 0
A4380264 12 1 13 0 2048 0 0 0 A4380264 A4380354 A4380578 A438065C A438065C A4380664 A4380664 0 0 A438065C 0 0 A4380678 A4380678 A4380680 A4380680 0 0 A4380694 A4380694 A438069C A438069C 0 0 A43806B0 A43806B0 A43806B8 A43806B8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A4380740 13 1 14 0 2048 0 0 0 A4380740 A4380830 A4380A54 A4380B38 A4380B38 A4380B40 A4380B40 0 0 A4380B38 0 0 A4380B54 A4380B54 A4380B5C A4380B5C 0 0 A4380B70 A4380B70 A4380B78 A4380B78 0 0 A4380B8C A4380B8C A4380B94 A4380B94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A4380C1C 14 1 15 0 2048 0 0 0 A4380C1C A4380D0C A4380F30 A4381014 A4381014 A438101C A438101C 0 0 A4381014 0 0 A4381030 A4381030 A4381038 A4381038 0 0 A438104C A438104C A4381054 A4381054 0 0 A4381068 A4381068 A4381070 A4381070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A43810F8 15 1 16 0 2048 0 0 0 A43810F8 A43811E8 A438140C A43814F0 A43814F0 A43814F8 A43814F8 0 0 A43814F0 0 0 A438150C A438150C A4381514 A4381514 0 0 A4381528 A4381528 A4381530 A4381530 0 0 A4381544 A4381544 A438154C A438154C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A43815D4 16 1 17 0 4096 0 0 0 A43815D4 A43816C4 A43818E8 A43819CC A43819CC A43819D4 A43819D4 0 0 A43819CC 0 0 A43819E8 A43819E8 A43819F0 A43819F0 0 0 A4381A04 A4381A04 A4381A0C A4381A0C 0 0 A4381A20 A4381A20 A4381A28 A4381A28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A4381AB0 17 1 18 0 4096 0 0 0 A4381AB0 A4381BA0 A4381DC4 A4381EA8 A4381EA8 A4381EB0 A4381EB0 0 0 A4381EA8 0 0 A4381EC4 A4381EC4 A4381ECC A4381ECC 0 0 A4381EE0 A4381EE0 A4381EE8 A4381EE8 0 0 A4381EFC A4381EFC A4381F04 A4381F04 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A4381F8C 18 1 19 0 4096 0 0 0 A4381F8C A438207C A43822A0 A4382384 A4382384 A438238C A438238C 0 0 A4382384 0 0 A43823A0 A43823A0 A43823A8 A43823A8 0 0 A43823BC A43823BC A43823C4 A43823C4 0 0 A43823D8 A43823D8 A43823E0 A43823E0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A4382468 19 1 20 0 4096 0 0 0 A4382468 A4382558 A438277C A4382860 A4382860 A4382868 A4382868 0 0 A4382860 0 0 A438287C A438287C A4382884 A4382884 0 0 A4382898 A4382898 A43828A0 A43828A0 0 0 A43828B4 A43828B4 A43828BC A43828BC 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A4382944 20 1 21 0 8192 0 0 0 A4382944 A4382A34 A4382C58 A4382D3C A4382D3C A4382D44 A4382D44 0 0 A4382D3C 0 0 A4382D58 A4382D58 A4382D60 A4382D60 0 0 A4382D74 A4382D74 A4382D7C A4382D7C 0 0 A4382D90 A4382D90 A4382D98 A4382D98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A4382E20 21 1 22 0 8192 0 0 0 A4382E20 A4382F10 A4383134 A4383218 A4383218 A4383220 A4383220 0 0 A4383218 0 0 A4383234 A4383234 A438323C A438323C 0 0 A4383250 A4383250 A4383258 A4383258 0 0 A438326C A438326C A4383274 A4383274 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A43832FC 22 1 23 0 8192 0 0 0 A43832FC A43833EC A4383610 A43836F4 A43836F4 A43836FC A43836FC 0 0 A43836F4 0 0 A4383710 A4383710 A4383718 A4383718 0 0 A438372C A438372C A4383734 A4383734 0 0 A4383748 A4383748 A4383750 A4383750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A43837D8 23 1 24 0 8192 0 0 0 A43837D8 A43838C8 A4383AEC A4383BD0 A4383BD0 A4383BD8 A4383BD8 0 0 A4383BD0 0 0 A4383BEC A4383BEC A4383BF4 A4383BF4 0 0 A4383C08 A4383C08 A4383C10 A4383C10 0 0 A4383C24 A4383C24 A4383C2C A4383C2C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A4383CB4 24 1 25 0 16384 0 0 0 A4383CB4 A4383DA4 A4383FC8 A43840AC A43840AC A43840B4 A43840B4 0 0 A43840AC 0 0 A43840C8 A43840C8 A43840D0 A43840D0 0 0 A43840E4 A43840E4 A43840EC A43840EC 0 0 A4384100 A4384100 A4384108 A4384108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A4384190 25 1 26 0 16384 0 0 0 A4384190 A4384280 A43844A4 A4384588 A4384588 A4384590 A4384590 0 0 A4384588 0 0 A43845A4 A43845A4 A43845AC A43845AC 0 0 A43845C0 A43845C0 A43845C8 A43845C8 0 0 A43845DC A43845DC A43845E4 A43845E4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A438466C 26 1 27 0 16384 0 0 0 A438466C A438475C A4384980 A4384A64 A4384A64 A4384A6C A4384A6C 0 0 A4384A64 0 0 A4384A80 A4384A80 A4384A88 A4384A88 0 0 A4384A9C A4384A9C A4384AA4 A4384AA4 0 0 A4384AB8 A4384AB8 A4384AC0 A4384AC0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A4384B48 27 1 28 0 16384 0 0 0 A4384B48 A4384C38 A4384E5C A4384F40 A4384F40 A4384F48 A4384F48 0 0 A4384F40 0 0 A4384F5C A4384F5C A4384F64 A4384F64 0 0 A4384F78 A4384F78 A4384F80 A4384F80 0 0 A4384F94 A4384F94 A4384F9C A4384F9C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A4385024 28 1 29 0 32768 0 0 0 A4385024 A4385114 A4385338 A438541C A438541C A4385424 A4385424 0 0 A438541C 0 0 A4385438 A4385438 A4385440 A4385440 0 0 A4385454 A4385454 A438545C A438545C 0 0 A4385470 A4385470 A4385478 A4385478 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A4385500 29 1 30 0 32768 0 0 0 A4385500 A43855F0 A4385814 A43858F8 A43858F8 A4385900 A4385900 0 0 A43858F8 0 0 A4385914 A4385914 A438591C A438591C 0 0 A4385930 A4385930 A4385938 A4385938 0 0 A438594C A438594C A4385954 A4385954 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A43859DC 30 1 31 0 32768 0 0 0 A43859DC A4385ACC A4385CF0 A4385DD4 A4385DD4 A4385DDC A4385DDC 0 0 A4385DD4 0 0 A4385DF0 A4385DF0 A4385DF8 A4385DF8 0 0 A4385E0C A4385E0C A4385E14 A4385E14 0 0 A4385E28 A4385E28 A4385E30 A4385E30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A4385EB8 31 1 32 0 32768 0 0 0 A4385EB8 A4385FA8 A43861CC A43862B0 A43862B0 A43862B8 A43862B8 0 0 A43862B0 0 0 A43862CC A43862CC A43862D4 A43862D4 0 0 A43862E8 A43862E8 A43862F0 A43862F0 0 0 A4386304 A4386304 A438630C A438630C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Таблица содержит 32 записи. То есть у нас может быть 32 WS.
Теперь попробуем посмотреть, что же у нас находится в буферном кэше. Сделать это можно следующим образом:
alter session set events 'immediate trace name buffers level 4'; (информация только «шапочная»)
alter session set events 'immediate trace name buffers level 6'; (+ детальная по каждому блоку).

Советую остановиться на 4 уровне, иначе эта процедура много места и времени займет. Дамп получим в папке, на которую установлен параметр инициализации user_dump_dest.
И вот что можно в полученном дампе увидеть:
(WS) size: 0 wsid: 1 state: 0
(WS_REPL_LIST) main_prev: a437cc0c main_next: a437cc0c aux_prev: a437cc14 aux_next: a437cc14curnum: 0 auxnum: 0
cold: a437cc0c hbmax: 0 hbufs: 0
(WS_WRITE_LIST) main_prev: a437cc28 main_next: a437cc28 aux_prev: a437cc30 aux_next: a437cc30curnum: 0 auxnum: 0
(WS_XOBJ_LIST) main_prev: a437cc44 main_next: a437cc44 aux_prev: a437cc4c aux_next: a437cc4ccurnum: 0 auxnum: 0
(WS_XRNG_LIST) main_prev: a437cc60 main_next: a437cc60 aux_prev: a437cc68 aux_next: a437cc68curnum: 0 auxnum: 0
(WS) fbwanted: 0
(WS) bgotten: 0 sumwrt: 0 sumscan: 0
(WS) numscan: 0 hotscan: 0 dmoves: 0
MAIN RPL_LST Queue header (NEXT_DIRECTION)[NULL]
MAIN RPL_LST Queue header (PREV_DIRECTION)[NULL]
AUXILIARY RPL_LST Queue header (NEXT_DIRECTION)[NULL]
AUXILIARY RPL_LST Queue header (PREV_DIRECTION)[NULL]
MAIN WRT_LST Queue header (NEXT_DIRECTION)[NULL]
MAIN WRT_LST Queue header (PREV_DIRECTION)[NULL]
AUXILIARY WRT_LST Queue header (NEXT_DIRECTION)[NULL]
AUXILIARY WRT_LST Queue header (PREV_DIRECTION)[NULL]
MAIN XOBJ_LST Queue header (NEXT_DIRECTION)[NULL]
MAIN XOBJ_LST Queue header (PREV_DIRECTION)[NULL]
AUXILIARY XOBJ_LST Queue header (NEXT_DIRECTION)[NULL]
AUXILIARY XOBJ_LST Queue header (PREV_DIRECTION)[NULL]
MAIN XRNG_LST Queue header (NEXT_DIRECTION)[NULL]
MAIN XRNG_LST Queue header (PREV_DIRECTION)[NULL]
AUXILIARY XRNG_LST Queue header (NEXT_DIRECTION)[NULL]
AUXILIARY XRNG_LST Queue header (PREV_DIRECTION)[NULL]
Из этого кусочка можно почерпнуть следующее:
- реально этого WS не существует,
- эта информация соответствует первой строке таблицы X$KCBWDS
Таких кусочков в полученном дампе есть 28 штук. Но самое интересное можно найти для 9-12 строк. Например, для 9 строки :
(WS) size: 15766 wsid: 9 state: 0
(WS_REPL_LIST) main_prev: 887ef124 main_next: 8f7f5c5c aux_prev: 85fec458 aux_next: 987eb664curnum: 15766 auxnum: 2745
cold: 84fe1880 hbmax: 7850 hbufs: 3818
(WS_WRITE_LIST) main_prev: a437f308 main_next: a437f308 aux_prev: a437f310 aux_next: a437f310curnum: 0 auxnum: 0
(WS_XOBJ_LIST) main_prev: a437f324 main_next: a437f324 aux_prev: a437f32c aux_next: a437f32ccurnum: 0 auxnum: 0
(WS_XRNG_LIST) main_prev: a437f340 main_next: a437f340 aux_prev: a437f348 aux_next: a437f348curnum: 0 auxnum: 0
(WS) fbwanted: 0
(WS) bgotten: 338629 sumwrt: 214301 sumscan: 18768
(WS) numscan: 48 hotscan: 752 dmoves: 1160
MAIN RPL_LST Queue header (NEXT_DIRECTION)[8f7f5c5c,887ef124]
8F7F5C14=>8A7F8F7C=>8A7F83BC=>8A7FACDC=>8A7F9B3C=>8A7F9E2C=>8A7FAFCC=>8A7FA11C
8A7FB89C=>8A7FCD2C=>8A7FBB8C=>8A7FC45C=>877FFDA4=>86FD3028=>86FDFDC8=>86FFD9A8
857E9164=>857EABD4=>847E95CC=>847E523C=>83FE0B00=>83FDEAB0=>83FDF670=>80FF8478
97FFFE60=>977D39B4=>977D2234=>977D2B04=>977D2DF4=>977D4284=>977D5CF4=>977D6BA4
86FF11E8=>927F4BEC=>927EEAFC=>927EF0DC=>927F170C=>927F19FC=>927F4EDC=>8B7F38D4……
MAIN RPL_LST Queue header (PREV_DIRECTION)[8f7f5c5c,887ef124]
887EF0DC=>887EEDEC=>90FE9978=>957E82B4=>957E6E24=>957E6264=>957E5994=>957E4214
957E2D84=>957E1BE4=>957E1314=>957E0754=>957DF8A4=>957DECE4=>957DE414=>947DC24C
957DD564=>957DC6B4=>957DBAF4=>957DB224=>957DA664=>957D94C4=>957D8904=>957D8034
957D7184=>947DEE5C=>957D5134=>957D4574=>957D3CA4=>957D30E4=>957D2524=>95FFF880
957D2B04=>947E02EC=>95FFE100=>95FFD540=>95FFCC70=>95FFBDC0=>95FFA930=>95FF9D70
95FF94A0=>95FF88E0=>95FF7D20=>95FF7160=>95FF65A0=>947E291C=>95FF56F0=>947E2EFC……..
AUXILIARY RPL_LST Queue header (NEXT_DIRECTION)[987eb664,85fec458]
987EB61C=>8D7D4E44=>8C7D49DC=>8C7F636C=>84FD8848=>8C7E438C=>8BFFC0B0=>81FD57D0
8D7D7764=>8D7DBAF4=>8C7EFC9C=>8BFFA350=>897F0CC4=>897F3004=>897F5C14=>897F3EB4
897F90F4=>897F6AC4=>897F7F54=>897F6DB4=>897F7974=>897F99C4=>897FA294=>897FE914……
AUXILIARY RPL_LST Queue header (PREV_DIRECTION)[987eb664,85fec458]
85FEC410=>85FEC9F0=>85FECFD0=>85FED5B0=>85FEDB90=>85FEF020=>85FEE460=>85FEE750
85FF04B0=>85FEF310=>85FEF600=>85FEFBE0=>85FF01C0=>85FF0D80=>85FF0A90=>85FF1360
85FF1650=>85FF1C30=>85FF2210=>85FF2500=>85FF2AE0=>85FF3F70=>85FF30C0=>85FF36A0
85FF3C80=>85FF4260=>85FF4840=>85FF56F0=>85FF5110=>85FF5FC0=>85FF5CD0=>85FF6B80….
MAIN WRT_LST Queue header (NEXT_DIRECTION)[NULL]
MAIN WRT_LST Queue header (PREV_DIRECTION)[NULL]
AUXILIARY WRT_LST Queue header (NEXT_DIRECTION)[NULL]
AUXILIARY WRT_LST Queue header (PREV_DIRECTION)[NULL]
MAIN XOBJ_LST Queue header (NEXT_DIRECTION)[NULL]
MAIN XOBJ_LST Queue header (PREV_DIRECTION)[NULL]
AUXILIARY XOBJ_LST Queue header (NEXT_DIRECTION)[NULL]
AUXILIARY XOBJ_LST Queue header (PREV_DIRECTION)[NULL]
MAIN XRNG_LST Queue header (NEXT_DIRECTION)[NULL]
MAIN XRNG_LST Queue header (PREV_DIRECTION)[NULL]
AUXILIARY XRNG_LST Queue header (NEXT_DIRECTION)[NULL]
AUXILIARY XRNG_LST Queue header (PREV_DIRECTION)[NULL
Здесь уже явно видно, что WS реально существует. Ему присущи определенные адреса в памяти.
MAIN RPL_LST Queue header (NEXT_DIRECTION)[8f7f5c5c,887ef124]
MAIN RPL_LST Queue header (PREV_DIRECTION)[8f7f5c5c,887ef124]
Это единая и неделимая пара представляет собой очередь LRU, которая управляет буферами в данном WS.
Просмотрев полностью дамп, нахожу, что у меня 32 -е таких пары (28 из них пустые). То есть, имеется 32 - WS, 32 - LRU .
Подтверждением этого может служить количество защелок _db_block_lru_latches на LRU списки:
select i.ksppinm parameter , v.ksppstvl VAL
from x$ksppi i, x$ksppcv v
where i.indx = v.indx
and i.ksppinm like '%lru%'
PARAMETER VAL
----------------------------------------------------------------
_db_block_lru_latches 32
Кроме непосредственно LRU списка (RPL_LST ), есть также другие списки - WRT_LST, XOBJ_LST, и XRNG_LST. А также видно AUXILIARY списки. О них писалось выше в статье.
Может вам пригодится:
x$kcbwds
SET_ID = set-id
DBWR_NUM = dbwriter associated to set
START_BUF# = index of first buffer in this set
END_BUF# = index of last buffer in this set
CNUM_SET = current total number of buffers in set
FLAG = state of working set 1 if no free buffer(need to make free)
CKPT_LATCH = checkpoint queue latch address(embeding also checkpoint list and file-checkpoint lists)
SET_LATCH = LRU latch
NXT_REPL = next MAIN replacement list ( empty if next=previous)
PRV_REPL = previous MAIN replacement list
NXT_REPLAX = next AUX replacement list
PRV_REPLAX = previous AUX replacement list
CNUM_REPL = current total number of buffers in both list
ANUM_REPL = current total number of buffers in AUX list
COLD_HD = first buffer linked in COLD portion of LRU
HBMAX = maximum buffers in hot portion of lru
HBUFS = number of buffers in hot portion of LRU
NXT_WRITE = next write MAIN list
PRV_WRITE = previous write MAIN list
NXT_WRITEAX = next write AUX list
PRV_WRITEAX = previous write AUX list
CNUM_WRITE = current total number of buffers in both list
ANUM_WRITE = current number of buffers in AUX list
NXT_PING = next MAIN ping list
PRV_PING = previous MAIN ping list
NXT_PINGAX = next AUX ping list
PRV_PINGAX = previous AUX ping list
CNUM_PING = current total number of buffers in both list
ANUM_PING = total number of buffers in AUX list
NXT_XOBJ = next MAIN reuse object list
PRV_XOBJ = previous MAIN reuse object list
NXT_XOBJAX = next AUX reuse object list
PRV_XOBJAX = previous AUX reuse object list
CNUM_XOBJ = current total number of buffers in both list
ANUM_XOBJ = total number of buffers in AUX list
NXT_XRNG = next MAIN reuse range list
PRV_XRNG = previous MAIN reuse range list
NXT_XRNGAX = next AUX reuse range list
PRV_XRNGAX = previous AUX reuse range list
CNUM_XRNG = current total number of buffers in both list
ANUM_XRNG = total number of buffers in AUX list
BUF_GOT = number of buffers gotten by FOREGROUND in this set
SUM_WRT = sum of buffers written by DBWR in this set
SUM_SCN = sum of buffers scanned by DBWR in this set
NUM_SCN = scans of cold buffers by dbwr of this set
HOT_SCN = scans of hot buffers by dbwr of this set
PIN_SCN = scans of pinned buffers by dbwr this
WRT_MOV = bufs moved to LRU-W by dbwr in this set
AUX_MOV = bufs moved to LRU-AUX by dbwr in this set
FBWAIT = Free Buffer Waits for this set
WCWAIT = Write Complete Waits for this
BBWAIT = Buffer Busy Waits for this set
FBINSP = Free Buffers Inspected for this set
DBINSP = Dirty Buffers Inspected for this set
PNINSP = Pinned Buffers Inspected for this set
HOTMVS = Hot buffers moved to head for this
DBBCHG = DB Block Changes for this set
DBBGET = DB Block gets for this set
CONGET = Consistent gets for this set
PREAD = physical reads for this set
PWRITE = physical writes for this set
FGSDEPTH = per set FG scan depth
DBHDEPTH = per set DBWR high scan depth
Литература
http://www.insight-tec.com/en/mailmagazine/vol059.html
Logical I/O Julian Dyke Independent Consultant juliandyke.com