[20240604]簡單探究RESERVED FREE LISTS chunk size的分佈.txt
--//前幾天探究探究free list,無意中發現12c版本free list chunk size的發生了變化.單獨另外寫一篇blog.
--//我開始分析以為指令碼執行有問題,仔細檢視12c版本free list chunk size分佈發生了變化.
--//我找了以前的11g下的轉儲,發生實際上11g已經出現這樣的變化,只不過大家沒有注意罷了.
--//今天看看RESERVED FREE LISTS chunk size的分佈情況.
1.環境:
SYS@test> @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
SYS@test> startup mount
ORACLE instance started.
Total System Global Area 805306368 bytes
Fixed Size 8924064 bytes
Variable Size 297796704 bytes
Database Buffers 490733568 bytes
Redo Buffers 7852032 bytes
Database mounted.
SYS@test> alter session set events 'immediate trace name heapdump level 2';
Session altered.
SYS@test> @ t
TRACEFILE
-----------------------------------------------------------------
D:\APP\ORACLE\diag\rdbms\test\test\trace\test_ora_7940.trc
2.檢視轉儲檔案:
d:\tmp> grep -E "RESERVED FREE LISTS| Reserved bucket " D:\APP\ORACLE\diag\rdbms\test\test\trace\test_ora_7940.trc
RESERVED FREE LISTS:
Reserved bucket 0 size=40
Reserved bucket 1 size=4400
Reserved bucket 2 size=8216
Reserved bucket 3 size=8752
Reserved bucket 4 size=8760
Reserved bucket 5 size=8768
Reserved bucket 6 size=8776
Reserved bucket 7 size=9384
Reserved bucket 8 size=9392
Reserved bucket 9 size=12368
Reserved bucket 10 size=12376
Reserved bucket 11 size=16408
Reserved bucket 12 size=32792
Reserved bucket 13 size=65560
Reserved bucket 14 size=1990664
RESERVED FREE LISTS FOR SIZES 64KB to 512KB:
Reserved bucket 0 size=40
Reserved bucket 1 size=65536
Reserved bucket 2 size=2147483647
RESERVED FREE LISTS FOR SIZES 512KB to 976KB:
Reserved bucket 0 size=40
Reserved bucket 1 size=524288
Reserved bucket 2 size=2147483647
RESERVED FREE LISTS FOR SIZES OVER 976KB:
Reserved bucket 0 size=40
Reserved bucket 1 size=999424
Reserved bucket 2 size=2147483647
RESERVED FREE LISTS:
Reserved bucket 0 size=40
Reserved bucket 1 size=4400
Reserved bucket 2 size=8216
Reserved bucket 3 size=8752
Reserved bucket 4 size=8760
Reserved bucket 5 size=8768
Reserved bucket 6 size=8776
Reserved bucket 7 size=9384
Reserved bucket 8 size=9392
Reserved bucket 9 size=12368
Reserved bucket 10 size=12376
Reserved bucket 11 size=16408
Reserved bucket 12 size=32792
Reserved bucket 13 size=65560
Reserved bucket 14 size=1990664
--//12c輸出很奇怪,前後出現相同的內容.
--//我的感覺是分成4段:
RESERVED FREE LISTS: <64KB
RESERVED FREE LISTS FOR SIZES 64KB to 512KB: >=64KB <512KB
RESERVED FREE LISTS FOR SIZES 512KB to 976KB: >=512KB <~976KB
RESERVED FREE LISTS FOR SIZES OVER 976KB: >=976KB
RESERVED FREE LISTS:
Reserved bucket 0 size=40
Reserved bucket 1 size=4400
--//RESERVED FREE LISTS非常特殊,一般大於一定大小chunk在有可能在保留池分配,受引數_shared_pool_reserved_min_alloc控制,預設
--//4400.
SYS@test> @ hide _shared_pool_reserved_min_alloc
NAME DESCRIPTION DEFAULT_VALUE SESSION_VALUE SYSTEM_VALUE ISSES ISSYS_MOD
------------------------------- ------------------------------------------------------------------ ------------- ------------- ------------ ----- ---------
_shared_pool_reserved_min_alloc minimum allocation size in bytes for reserved area of shared pool TRUE 4400 4400 FALSE FALSE
--//一般即使需要使用這麼大的chunk,oracle先在普通共享池的Free list中分配,不行才到保留池分配.
--//設定 Reserved bucket 1 size=4400,來源這裡.分隔剩下如果小於4400,放入 Reserved bucket 0 size=40中.
--//嘗試修改看看:
SYS@test> alter system set "_shared_pool_reserved_min_alloc"=4500 scope=spfile;
System altered.
--//重啟資料庫略.
SYS@test> alter session set events 'immediate trace name heapdump level 2';
Session altered.
SYS@test> @ t
TRACEFILE
-----------------------------------------------------------------
D:\APP\ORACLE\diag\rdbms\test\test\trace\test_ora_4108.trc
SYS@test> host grep -E "RESERVED FREE LISTS| Reserved bucket " &TRC
RESERVED FREE LISTS:
Reserved bucket 0 size=40
Reserved bucket 1 size=4500
Reserved bucket 2 size=8216
Reserved bucket 3 size=8752
Reserved bucket 4 size=8760
Reserved bucket 5 size=8768
Reserved bucket 6 size=8776
Reserved bucket 7 size=9384
Reserved bucket 8 size=9392
Reserved bucket 9 size=12368
Reserved bucket 10 size=12376
Reserved bucket 11 size=16408
Reserved bucket 12 size=32792
Reserved bucket 13 size=65560
Reserved bucket 14 size=1990664
RESERVED FREE LISTS FOR SIZES 64KB to 512KB:
Reserved bucket 0 size=40
Reserved bucket 1 size=65536
Reserved bucket 2 size=2147483647
RESERVED FREE LISTS FOR SIZES 512KB to 976KB:
Reserved bucket 0 size=40
Reserved bucket 1 size=524288
Reserved bucket 2 size=2147483647
RESERVED FREE LISTS FOR SIZES OVER 976KB:
Reserved bucket 0 size=40
Reserved bucket 1 size=999424
Reserved bucket 2 size=2147483647
RESERVED FREE LISTS:
Reserved bucket 0 size=40
Reserved bucket 1 size=4500
Reserved bucket 2 size=8216
Reserved bucket 3 size=8752
Reserved bucket 4 size=8760
Reserved bucket 5 size=8768
Reserved bucket 6 size=8776
Reserved bucket 7 size=9384
Reserved bucket 8 size=9392
Reserved bucket 9 size=12368
Reserved bucket 10 size=12376
Reserved bucket 11 size=16408
Reserved bucket 12 size=32792
Reserved bucket 13 size=65560
Reserved bucket 14 size=1990664
--//可以發現改變隱含引數,導致 Reserved bucket 1 size=4500,但是Reserved bucket 2 size=8216沒有變化.
--//還原:
SYS@test> alter system reset "_shared_pool_reserved_min_alloc";
System altered.
--//重啟資料庫略.
[20240604]簡單探究RESERVED FREE LISTS chunk size的分佈.txt
相關文章
- [20240529]簡單探究FREE LISTS列表.txt
- [20160902]簡單探究linux的free命令.txtLinux
- _shared_pool_reserved_pct or shared_pool_reserved_size with ASMMASM
- [20170315]簡單探究dg的mrp程式.txt
- Bucket(free list) 是如何來劃分記憶體chunk大小範圍的?記憶體
- SHARED_POOL_RESERVED_SIZE引數的設定及作用
- [20190328]簡單探究sql語句相關mutexes.txtSQLMutex
- [20190301]簡單測試linux fsfreeze命令.txtLinux
- [20171109]簡單探究檔案ab_ASM_SID.dat.txtASM
- 正態分佈簡述
- 陣列分組chunk的一種寫法陣列
- background-size屬性用法簡單介紹
- [20221012]簡單探究nvarchar2資料型別儲存.txt資料型別
- 簡單理解flex佈局Flex
- Flutter 簡單佈局技巧Flutter
- Flexbox 佈局的最簡單表單Flex
- [20210520]11g shared pool latch與library cache mutex的簡單探究.txtMutex
- [20210521]11g shared pool latch與library cache mutex的簡單探究4.txtMutex
- Azure Reserved IP
- Laravel 裡面的 chunk 分塊效率問題Laravel
- freebsd簡單漢化終結篇[解決了簡單漢化的所有問題(轉)
- Mycat分庫分表的簡單實踐
- PyQt4(簡單佈局)QT
- 關於共軛分佈,beta分佈,二項分佈和Dirichlet分佈、多項式分佈的關係
- 實驗-資料分佈對執行計劃的影響.txt
- 使用 Flex 佈局與其他普通佈局的簡單對比Flex
- [20210520]11g shared pool latch與library cache mutex的簡單探究3.txtMutex
- 簡單的Repeater分頁程式碼
- 20240604總結
- 移動端佈局方案探究
- [20210903]探究mutex的值.txtMutex
- Masonry佈局簡單朋友圈
- 基於引數shared_pool_reserved_size進一步理解共享池shared pool原理
- 一種簡單易懂的 MyBatis 分庫分表方案MyBatis
- 一個好用簡單的佈局空間EasyUIUI
- 你以為 CSS 只是個簡單的佈局?CSS
- 探究MySQL MGR的讀寫分離MySql
- 簡單的前後端分離 Cas後端