[20260813]简单探究row cache的相关问题2.txt

[20260813]简单探究row cache的相关问题2.txt

--//继续昨天的探究:
--//疑问:前面测试查询如下
SYS@book> select rownum cache# from dual connect by level <=65 minus select cache# from v$rowcache where type='PARENT';
    CACHE#
----------
         7
        42
        51
        11
--//type='PARENT' 不存在cache#=7,42,51,11.

SYS@book> select distinct cache#,type,parameter  from v$rowcache where cache# in (7,11,42,51);
    CACHE# TYPE                           PARAMETER
---------- ------------------------------ ------------------------------
         7 SUBORDINATE                    dc_users
--//存在 CACHE#=7,TYPE=SUBORDINATE,PARAMETER=dc_users。在type='PARENT',PARAMETER=dc_users,cache#=10.

SYS@book> select distinct cache#,cache_name  from v$rowcache_parent where cache# in (7,11,42,51);
    CACHE# CACHE_NAME
---------- --------------
        11 dc_objects
--//有一部分CACHE_NAME=dc_objects,cache#=11,似乎这些对象在v$fixed_table定义。

--//看看cache#=7,11,42,51的情况:
SYS@book> @ opeek 00000000774C8668 544 1
New tracefile_identifier = /u01/app/oracle/diag/rdbms/book/book/trace/book_ora_3877_0001.trc
[0774C8668, 0774C8888) = 00000221 00B38F00 16B4E6AA 00000000 776E0728 00000000 7757AB80 00000000 775805F0 00000000 774CAA48 00000000 7757D8B8 00000000 ...

*** 2026-08-13T17:03:31.561361+08:00 (CDB$ROOT(1))
Processing Oradebug command 'peek 0x00000000774c8668 544 1'
[0774C8668, 0774C8888) = 00000221 00B38F00 16B4E6AA 00000000 776E0728 ...
Dump of memory from 0x0774C867C to 0x0774C8888
0774C8670                            00000000              [....]
0774C8680 7757AB80 00000000 775805F0 00000000  [..Ww......Xw....]  2
0774C8690 774CAA48 00000000 7757D8B8 00000000  [H.Lw......Ww....]  4
0774C86A0 776E0DE0 00000000 776E3B18 00000000  [..nw.....;nw....]  6
0774C86B0 776E4750 00000000 77844890 00000000  [PGnw.....H.w....]  8
          ~~~~~~~~          ++++++++
0774C86C0 76A2E750 00000000 776E4750 00000000  [P..v....PGnw....]  10
                            ~~~~~~~~
0774C86D0 77844890 00000000 779AA300 00000000  [.H.w.......w....]  12
          ++++++++          ========
0774C86E0 779D6438 00000000 760DB990 00000000  [8d.w.......v....]  14
0774C86F0 760DA120 00000000 779D7B70 00000000  [ ..v....p{.w....]  16
0774C8700 779A49C8 00000000 760D47E8 00000000  [.I.w.....G.v....]  18
0774C8710 760CEEB0 00000000 767EC0B0 00000000  [...v......~v....]  20
0774C8720 7689C1E8 00000000 76A384F8 00000000  [...v.......v....]  22
0774C8730 769FC458 00000000 76A357C0 00000000  [X..v.....W.v....]  24
0774C8740 76A38660 00000000 76A28E18 00000000  [`..v.......v....]  26
0774C8750 76A0D000 00000000 76A12938 00000000  [...v....8).v....]  28
0774C8760 76A18270 00000000 76A1DBA8 00000000  [p..v.......v....]  30
0774C8770 76A234E0 00000000 760C3D78 00000000  [.4.v....x=.v....]  32
0774C8780 7624CCD8 00000000 762473A0 00000000  [..$v.....s$v....]  34
0774C8790 76266298 00000000 7624FA10 00000000  [.b&v......$v....]  36
0774C87A0 76252748 00000000 76255480 00000000  [H'%v.....T%v....]  38
0774C87B0 7625ADB8 00000000 76A3DF98 00000000  [..%v.......v....]  40
0774C87C0 76A40CD0 00000000 776E4750 00000000  [...v....PGnw....]  42
                            ~~~~~~~~
0774C87D0 7625DAF0 00000000 76260828 00000000  [..%v....(.&v....]  44
0774C87E0 76263560 00000000 76241930 00000000  [`5&v....0.$v....]  46
0774C87F0 760DBD88 00000000 760DEAC0 00000000  [...v.......v....]  48
0774C8800 760E17F8 00000000 76A2FE88 00000000  [...v.......v....]  50
0774C8810 779AA300 00000000 76A01D90 00000000  [...w.......v....]  52
          ========
0774C8820 76A076C8 00000000 760C1040 00000000  [.v.v....@..v....]  54
0774C8830 76244668 00000000 76A43A08 00000000  [hF$v.....:.v....]  56
0774C8840 76A44640 00000000 76A45278 00000000  [@F.v....xR.v....]  58
0774C8850 76A45EB0 00000000 760DAD58 00000000  [.^.v....X..v....]  60
0774C8860 7626BBD0 00000000 763CBD08 00000000  [..&v......<v....]  62
0774C8870 7652BE40 00000000 7694C320 00000000  [@.Rv.... ..v....]  64
0774C8880 7668BF78 00000000                    [x.hv....]          66
--//注:在每行行尾加入数字,便于查询以及说明.
--//(544-16)/8  = 66,也就是存在66个地址。
--//cache#=7,对应下划线的内容出现3次.对应cache#=7,10,42,而cache#=10,dc_users.
--//cache#=11,对应+++++的内容出现2次,对应cache#=8,11 ,而cache#=8,dc_objects.
--//cache#=51,对应=====的内存出现2次,对应cache#=12,51.而cache#=12,dc_constraints

--//如果直接查看文件61000000。
$ od -t x8 -j $[0x774C8668-0x61000000+0x10] -N $[544-16] -A x -w8 61000000 | nl -v 0 -ba
     0  164c8678 00000000776e0728
     1  164c8680 000000007757ab80
     2  164c8688 00000000775805f0
     3  164c8690 00000000774caa48
     4  164c8698 000000007757d8b8
     5  164c86a0 00000000776e0de0
     6  164c86a8 00000000776e3b18
     7  164c86b0 00000000776e4750
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
     8  164c86b8 0000000077844890 --//dc_objects
    +++++++++++++++++++++++++++++
     9  164c86c0 0000000076a2e750
    10  164c86c8 00000000776e4750 --//dc_users
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    11  164c86d0 0000000077844890
    +++++++++++++++++++++++++++++
    12  164c86d8 00000000779aa300 --//dc_constraints
    =============================
    13  164c86e0 00000000779d6438
    14  164c86e8 00000000760db990
    15  164c86f0 00000000760da120
    16  164c86f8 00000000779d7b70
    17  164c8700 00000000779a49c8
    18  164c8708 00000000760d47e8
    19  164c8710 00000000760ceeb0
    20  164c8718 00000000767ec0b0
    21  164c8720 000000007689c1e8
    22  164c8728 0000000076a384f8
    23  164c8730 00000000769fc458
    24  164c8738 0000000076a357c0
    25  164c8740 0000000076a38660
    26  164c8748 0000000076a28e18
    27  164c8750 0000000076a0d000
    28  164c8758 0000000076a12938
    29  164c8760 0000000076a18270
    30  164c8768 0000000076a1dba8
    31  164c8770 0000000076a234e0
    32  164c8778 00000000760c3d78
    33  164c8780 000000007624ccd8
    34  164c8788 00000000762473a0
    35  164c8790 0000000076266298
    36  164c8798 000000007624fa10
    37  164c87a0 0000000076252748
    38  164c87a8 0000000076255480
    39  164c87b0 000000007625adb8
    40  164c87b8 0000000076a3df98
    41  164c87c0 0000000076a40cd0
    42  164c87c8 00000000776e4750
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    43  164c87d0 000000007625daf0
    44  164c87d8 0000000076260828
    45  164c87e0 0000000076263560
    46  164c87e8 0000000076241930
    47  164c87f0 00000000760dbd88
    48  164c87f8 00000000760deac0
    49  164c8800 00000000760e17f8
    50  164c8808 0000000076a2fe88
    51  164c8810 00000000779aa300
    =============================
    52  164c8818 0000000076a01d90
    53  164c8820 0000000076a076c8
    54  164c8828 00000000760c1040
    55  164c8830 0000000076244668
    56  164c8838 0000000076a43a08
    57  164c8840 0000000076a44640
    58  164c8848 0000000076a45278
    59  164c8850 0000000076a45eb0
    60  164c8858 00000000760dad58
    61  164c8860 000000007626bbd0
    62  164c8868 00000000763cbd08
    63  164c8870 000000007652be40
    64  164c8878 000000007694c320
    65  164c8880 000000007668bf78
    66  164c8888
--//od 参数说明-t x8 8位一组,-j -j $[0x774C8668-0x61000000+0x10]表示开始位置,-N $[544-16]取长度,-A x表示文件偏移的16进
--//制显示,-w8显示宽度,相当于每行1个地址。
--//cache#=7,对应下划线的内容出现3次.对应cache#=7,10,42,而cache#=10,dc_users.
--//cache#=11,对应+++++的内容出现2次,对应cache#=8,11 ,而cache#=8,dc_objects.
--//cache#=51,对应=====的内存出现2次,对应cache#=12,51.而cache#=12,dc_constraints
--//分别指向的地址都是相同的。

--//换一个方式执行:
$ od -t x8 -j $[0x774C8668-0x61000000+0x10] -N $[544-16] -A x -w8 61000000 | awk '{print $2}'| sort | uniq -c | nl -ba -w3
  1           1
  2           1 00000000760c1040
  3           1 00000000760c3d78
  4           1 00000000760ceeb0
  5           1 00000000760d47e8
  6           1 00000000760da120
  7           1 00000000760dad58
  8           1 00000000760db990
  9           1 00000000760dbd88
 10           1 00000000760deac0
 11           1 00000000760e17f8
 12           1 0000000076241930
 13           1 0000000076244668
 14           1 00000000762473a0
 15           1 000000007624ccd8
 16           1 000000007624fa10
 17           1 0000000076252748
 18           1 0000000076255480
 19           1 000000007625adb8
 20           1 000000007625daf0
 21           1 0000000076260828
 22           1 0000000076263560
 23           1 0000000076266298
 24           1 000000007626bbd0
 25           1 00000000763cbd08
 26           1 000000007652be40
 27           1 000000007668bf78
 28           1 00000000767ec0b0
 29           1 000000007689c1e8
 30           1 000000007694c320
 31           1 00000000769fc458
 32           1 0000000076a01d90
 33           1 0000000076a076c8
 34           1 0000000076a0d000
 35           1 0000000076a12938
 36           1 0000000076a18270
 37           1 0000000076a1dba8
 38           1 0000000076a234e0
 39           1 0000000076a28e18
 40           1 0000000076a2e750
 41           1 0000000076a2fe88
 42           1 0000000076a357c0
 43           1 0000000076a384f8
 44           1 0000000076a38660
 45           1 0000000076a3df98
 46           1 0000000076a40cd0
 47           1 0000000076a43a08
 48           1 0000000076a44640
 49           1 0000000076a45278
 50           1 0000000076a45eb0
 51           1 00000000774caa48
 52           1 000000007757ab80
 53           1 000000007757d8b8
 54           1 00000000775805f0
 55           1 00000000776e0728
 56           1 00000000776e0de0
 57           1 00000000776e3b18
 58           3 00000000776e4750
 59           2 0000000077844890
 60           1 00000000779a49c8
 61           2 00000000779aa300
 62           1 00000000779d6438
 63           1 00000000779d7b70
--//除了第1行,记录62个地址。

--//简单点解析就是查询cache#=11的row cache对象查询实际上与查询cache#=8一样.
SYS@book> @ dc/dc_objects "hash in (6777,6778) "
USERNAME DC_OBJ_NAME KEY_STR_LEN HASH_HEX   INDX   HASH ADDRESS              CACHE# CACHE_NAME           EXISTENT  LOCK_MODE LOCK_REQUEST TXN              SADDR            INST_LOCK_REQUEST INST_LOCK_RELEASE IN INST_LOC INST_LOC CON_ID
-------- ----------- ----------- -------- ------ ------ ---------------- ---------- -------------------- -------- ---------- ------------ ---------------- ---------------- ----------------- ----------------- -- -------- -------- ------
SYS                            0 0x1a79     6444   6777 0000000062E1B668         11 dc_objects           N                 0            0 00               00                               0                 0    00       00            1
SYS                            0 0x1a7a     6445   6778 0000000062E0E988         11 dc_objects           N                 0            0 00               00                               0                 0    00       00            1
         KOTTBX$               7 0x1a7a     2795   6778 000000006FB7A870          8 dc_objects           Y                 0            0 00               00                               0                 0    00       00            2

--//附上查询v$rowcache ,type='PARENT'的列表.
SELECT
 cache#
,type
,parameter
,count
FROM v$rowcache
where type='PARENT' order by 1

SYS@book> /

    CACHE# TYPE    PARAMETER                                     COUNT
---------- ------- ---------------------------------------- ----------
         0 PARENT  dc_tablespaces                                   13
         1 PARENT  dc_free_extents                                   0
         2 PARENT  dc_segments                                    1315
         3 PARENT  dc_rollback_segments                             77
         4 PARENT  dc_used_extents                                   0
         5 PARENT  dc_tablespace_quotas                              0
         6 PARENT  dc_files                                          0
         8 PARENT  dc_objects                                     2687
         9 PARENT  qmrc_cache_entries                                0
        10 PARENT  dc_users                                          9
        12 PARENT  dc_constraints                                    0
        13 PARENT  dc_sequences                                      7
        14 PARENT  dc_profiles                                       1
        15 PARENT  dc_props                                          8
        16 PARENT  dc_histogram_defs                              7875
        17 PARENT  dc_global_oids                                   91
        18 PARENT  dc_outlines                                       0
        19 PARENT  dc_table_scns                                     0
        20 PARENT  rule_info                                         0
        21 PARENT  rule_or_piece                                     0
        22 PARENT  dc_awr_control                                    2
        23 PARENT  dc_qmc_ldap_cache_entries                         0
        24 PARENT  outstanding_alerts                                2
        25 PARENT  SMO rowcache                                      0
        26 PARENT  qmtmrctq_cache_entries                            0
        27 PARENT  qmtmrcin_cache_entries                            0
        28 PARENT  qmtmrctn_cache_entries                            0
        29 PARENT  qmtmrcip_cache_entries                            0
        30 PARENT  qmtmrctp_cache_entries                            0
        31 PARENT  qmtmrciq_cache_entries                            0
        32 PARENT  kqlsubheap_object                                 0
        33 PARENT  Unused                                            0
        34 PARENT  extensible security principal in                  0
        35 PARENT  triton security name to ID                        0
        36 PARENT  Unused                                            0
        37 PARENT  Unused                                            0
        38 PARENT  XS security class privilege                       0
        39 PARENT  extensible security midtier cach                  0
        40 PARENT  sch_lj_objs                                       0
        41 PARENT  sch_lj_oids                                      10
        43 PARENT  AV row cache 1                                    0
        44 PARENT  AV row cache 2                                    0
        45 PARENT  AV row cache 3                                    0
        46 PARENT  Rule Set Cache                                    0
        47 PARENT  realm cache                                       0
        48 PARENT  Command rule cache                                0
        49 PARENT  Realm Object cache                                0
        50 PARENT  qmemod_cache_entries                              0
        52 PARENT  qmc_app_cache_entries                             0
        53 PARENT  qmc_app_cache_entries                             0
        54 PARENT  dc_sql_prs_errors                                 0
        55 PARENT  DV Auth Cache                                     0
        56 PARENT  dc_cdbfiles                                       0
        57 PARENT  dc_cdbservices                                    0
        58 PARENT  dc_pdbdba                                         0
        59 PARENT  dc_pdbstates                                      0
        60 PARENT  dc_cdbprops                                       0
        61 PARENT  dc_statistics_status                              0
        62 PARENT  dc_realtime_colst                                 0
        63 PARENT  dc_realtime_tabst                                 0
        64 PARENT  key_shard                                         0
        65 PARENT  dc_column_model_to_tab                            0
62 rows selected.

posted @ 2026-08-19 20:58  lfree  阅读(2)  评论(0)    收藏  举报