ExaGridDba

some cr v$bh rows are duplicates

Oct 10th, 2015
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. v$bh has no PRIMARY KEY.
  2. Duplicate ROWS are possible.
  3.  
  4. SQL> DESC v$bh
  5.  Name                                                                                                              NULL?    TYPE
  6.  ----------------------------------------------------------------------------------------------------------------- -------- ----------------------------------------------------------------------------
  7.  FILE#                                                                                                                      NUMBER
  8.  BLOCK#                                                                                                                     NUMBER
  9.  CLASS#                                                                                                                     NUMBER
  10.  STATUS                                                                                                                     VARCHAR2(10)
  11.  XNC                                                                                                                        NUMBER
  12.  FORCED_READS                                                                                                               NUMBER
  13.  FORCED_WRITES                                                                                                              NUMBER
  14.  LOCK_ELEMENT_ADDR                                                                                                          RAW(8)
  15.  LOCK_ELEMENT_NAME                                                                                                          NUMBER
  16.  LOCK_ELEMENT_CLASS                                                                                                         NUMBER
  17.  DIRTY                                                                                                                      VARCHAR2(1)
  18.  TEMP                                                                                                                       VARCHAR2(1)
  19.  PING                                                                                                                       VARCHAR2(1)
  20.  STALE                                                                                                                      VARCHAR2(1)
  21.  DIRECT                                                                                                                     VARCHAR2(1)
  22.  NEW                                                                                                                        CHAR(1)
  23.  OBJD                                                                                                                       NUMBER
  24.  TS#                                                                                                                        NUMBER
  25.  LOBID                                                                                                                      NUMBER
  26.  CACHEHINT                                                                                                                  NUMBER
  27.  FLASH_CACHE                                                                                                                VARCHAR2(7)
  28.  CELL_FLASH_CACHE                                                                                                           VARCHAR2(7)
  29.  CON_ID                                                                                                                     NUMBER
  30.  
  31. SQL> SELECT COUNT(*)
  32.   2  FROM v$bh WHERE FILE#=3 AND BLOCK#=4954 AND status = 'cr'
  33.   3  ;
  34.  
  35.   COUNT(*)
  36. ----------
  37.          7
  38.  
  39. SQL> SELECT COUNT(*)
  40.   2  FROM
  41.   3  (
  42.   4  SELECT DISTINCT
  43.   5          FILE#,
  44.   6          BLOCK#,
  45.   7          CLASS#,
  46.   8          STATUS,
  47.   9          XNC,
  48.  10          FORCED_READS,
  49.  11          FORCED_WRITES,
  50.  12          LOCK_ELEMENT_ADDR,
  51.  13          LOCK_ELEMENT_NAME,
  52.  14          LOCK_ELEMENT_CLASS,
  53.  15          DIRTY,
  54.  16          TEMP,
  55.  17          PING,
  56.  18          STALE,
  57.  19          DIRECT,
  58.  20          NEW,
  59.  21          OBJD,
  60.  22          TS#,
  61.  23          LOBID,
  62.  24          CACHEHINT,
  63.  25          FLASH_CACHE,
  64.  26          CELL_FLASH_CACHE,
  65.  27          CON_ID
  66.  28  FROM v$bh WHERE FILE#=3 AND BLOCK#=4954 AND status = 'cr'
  67.  29  );
  68.  
  69.   COUNT(*)
  70. ----------
  71.          1
  72.  
  73. Here, explicitly, are 7 duplicate v$bh ROWS.
  74.  
  75. SELECT * FROM v$bh
  76. WHERE FILE#=3 AND BLOCK#=4954 AND status = 'cr';
  77.  
  78. FILE#   BLOCK#  CLASS#  STATUS  XNC FORCED_READS    FORCED_WRITES   LOCK_ELEMENT_ADDR   LOCK_ELEMENT_NAME   LOCK_ELEMENT_CLASS
  79. 3   4954    8   cr  0   0   0   00     
  80. 3   4954    8   cr  0   0   0   00     
  81. 3   4954    8   cr  0   0   0   00     
  82. 3   4954    8   cr  0   0   0   00     
  83. 3   4954    8   cr  0   0   0   00     
  84. 3   4954    8   cr  0   0   0   00     
  85. 3   4954    8   cr  0   0   0   00     
  86.  
  87. DIRTY   TEMP    PING    STALE   DIRECT  NEW OBJD    TS# LOBID   CACHEHINT   FLASH_CACHE CELL_FLASH_CACHE    CON_ID
  88. N   N   N   N   N   N   8107    1   0   15  DEFAULT DEFAULT 1
  89. N   N   N   N   N   N   8107    1   0   15  DEFAULT DEFAULT 1
  90. N   N   N   N   N   N   8107    1   0   15  DEFAULT DEFAULT 1
  91. N   N   N   N   N   N   8107    1   0   15  DEFAULT DEFAULT 1
  92. N   N   N   N   N   N   8107    1   0   15  DEFAULT DEFAULT 1
  93. N   N   N   N   N   N   8107    1   0   15  DEFAULT DEFAULT 1
  94. N   N   N   N   N   N   8107    1   0   15  DEFAULT DEFAULT 1
  95.  
  96. No duplicate ROWS exist IN x$bh
  97.  
  98. SQL> SELECT COUNT(*)
  99.   2  FROM x$bh x
  100.   3  WHERE x.obj = 8107
  101.   4  AND x.dbablk = 4954
  102.   5  AND x.state = 3;
  103.  
  104.   COUNT(*)
  105. ----------
  106.          7
  107.  
  108. Ix x$bh, the ROWS are different BY ADDR, INDX, OR SCN
  109.  
  110. SQL> SELECT x.addr, x.indx, x.con_id, x.dbarfil, x.dbablk, x.obj, cr_scn_bas, cr_scn_wrp, x.state
  111.   2  FROM x$bh x
  112.   3  WHERE x.obj = 8107
  113.   4  AND x.dbablk = 4954
  114.   5  AND x.state = 3
  115.   6  ORDER BY x.con_id, x.dbarfil, x.dbablk, x.obj, cr_scn_bas, cr_scn_wrp;
  116.  
  117. ADDR                   INDX     CON_ID    DBARFIL     DBABLK        OBJ CR_SCN_BAS CR_SCN_WRP      STATE
  118. ---------------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  119. 00007F7BF89DDCA8       2518          1          3       4954       8107   31303060          0          3
  120. 00007F7BF89DDE00       2517          1          3       4954       8107   31304429          0          3
  121. 00007F7BF89DE420       2516          1          3       4954       8107   31304438          0          3
  122. 00007F7BF89DE578       2515          1          3       4954       8107   31304853          0          3
  123. 00007F7BF89DE6D0       2514          1          3       4954       8107   31304862          0          3
  124. 00007F7BF89DE828       2513          1          3       4954       8107   31305577          0          3
  125. 00007F7BF89DEAD8       2511          1          3       4954       8107   31305585          0          3
  126.  
  127. 7 ROWS selected.
Advertisement
Add Comment
Please, Sign In to add comment