SlideShare ist ein Scribd-Unternehmen logo
1 von 47
Block Mode で紐解く
Oracle Real Application Clusters の
          Buffer Sharing
          要はCR
        ~ 要はCR Block ~




        Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   1
その前に、、、




          Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   2
What’s Real Application Clusters ?

Real Application Clusters とは、、、
構成における特徴                                         機能における特徴
- 複数サーバで共有ストレージに接続                               - 複数ノードで並行処理することによる
- 全てのサーバはACTIVE                                    パフォーマンスアップ
- サーバ間を高速ネットワークで接続                               - 複数のACTIVEサーバによる高可用性
- 複数インスタンスでDBを共有                                 - ノード追加による拡張性




                Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   3
What’s Real Application Clusters ?

Real Application Clusters とは、、、
  パフォーマンスアップに対するソリューション

    スケールアップによる性能・コストの限界

   スケールアウトによるリソース限界の打破

             スケーラビリティーの壁


                Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   4
What’s Real Application Clusters ?

スケーラビリティーの壁




                                                                                キーワードは
                                                                                ブロックの

                                                                                モード
       サーバは分割してもデータは共有

               Copyright © 2011 Insight Technology, Inc. All Rights Reserved.            5
Data Block

ブロックとは、、、、
 IOの最小単位
 表領域にセグメントを格納
 セグメントは複数のエクステントで構成
 エクステントはブロックの集まり
 ブロック内にレコードを格納
 Diskから読み取ったブロックはSGA内の
 バッファ・キャッシュで管理




                                                                               表領域     エクステント

                                                                               セグメント   ブロック




              Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                    6
What’s Block Mode?

Mode とは、
 OWNER        OBJECT_NAM        OBJ BA                   DBABLK LRU_FLAG        CLASS        TCH STATUS
 ----------   ---------- ---------- ---------------- ---------- ---------- ---------- ---------- --------
 TTT          T_TTT           74984 0000000062152000       4120          1          8          1 xcur
 TTT          T_TTT           74984 0000000065D08000       4121          1          9          1 xcur
 TTT          T_TTT           74984 0000000061916000       4122          1          4          8 xcur
 TTT          T_TTT           74984 000000006BD0E000       4123          1          1          8 xcur
 TTT          T_TTT           74984 000000006914E000       4124          1          1          8 xcur
 TTT          T_TTT           74984 0000000068A2C000       4125          1          1          8 xcur
 TTT          T_TTT           74984 00000000696F4000       4126          1          1          8 xcur
 TTT          T_TTT           74984 000000006439E000       4127          1          1          8 xcur
 TTT          I_TTT           74985 00000000638D8000       4128          1          8          1 xcur
 TTT          I_TTT           74985 0000000069B74000       4129          1          9          1 xcur
 TTT          I_TTT           74985 000000006267E000       4130          1          4          5 xcur
 TTT          I_TTT           74985 0000000069558000       4131          1          1          1 xcur




                                   Copyright © 2011 Insight Technology, Inc. All Rights Reserved.           7
What’s Block Mode?

Block Mode とは、
  XCUR      排他/カレントモード
  CR        読み取り一貫性モード
  FREE      開放モード




               Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   8
What’s Block Mode?

Block Mode とは、
  XCUR      排他/カレントモード

  ・ブロックの最新イメージ
  ・シングルインスタンス環境では SELECT してバッファ・キャッシュに載った時
   点で XCUR になる
  ・行やセグメントに対する”排他”ではなく、インスタンスに対する”排他”




               Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   9
What’s Block Mode?

Block Mode とは、
    CR              読み取り一貫性モード

    ・読み取り一貫性を担保するために生成される一時的なブロック
    ・ブロック一つに対して複数の CR ブロックが生成される場合がある
    ・ブロック一つに対して生成される CR ブロックの数には上限がある
       キーワード:_db_block_max_cr_dba
    ・CR ブロックは必ずしも SELECT の際にだけ発生するわけではない


 参照:
 http://www.insight-tec.com/mailmagazine/ora3/vol171.html


                        Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   10
What’s Block Mode?

Block Mode とは、
      CR                  読み取り一貫性モード

              SELECT        UPDATE                                                               COMMIT

SESSION:1
            SCN:10 XCUR   SCN:20 XCUR              undo                                                   SCN:20 XCUR
            DATA : AA     DATA : BB                                                                       DATA : BB

            SESSION:2
                                                       SELECT                                                SELECT
                                                                         SCN:10             CR
                                                                         DATA : AA




                           Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                               11
What’s Block Mode?

CRブロックはカレントブロックと同じハッシュチェー
ン上にアロケートされる
   .......................
   CHAIN: 8669 LOC: 0x7c772878 HEAD: [0x6ebcadf8,0x6d7b0118]
       BH (0x6ebcad48) file#: 8 rdba: 0x0200101b (8/4123) class:                        1 ba: 0x6ea76000
           ........
       BH (0x61bd0858) file#: 8 rdba: 0x0200101b (8/4123) class:                        1 ba: 0x61af2000
           ........
       BH (0x623c3070) file#: 8 rdba: 0x0200101b (8/4123) class:                        1 ba: 0x621cc000
           ........
       BH (0x6d7c5528) file#: 8 rdba: 0x0200101b (8/4123) class:                        1 ba: 0x6d5fe000
           ........
       BH (0x647ccaa8) file#: 8 rdba: 0x0200101b (8/4123) class:                        1 ba: 0x6469e000
           ........
       BH (0x6bbd77f8) file#: 8 rdba: 0x0200101b (8/4123) class:                        1 ba: 0x6bb8a000
           ........
       BH (0x6d7b0068) file#: 8 rdba: 0x0200101b (8/4123) class:
                                rdba:                                                   1 ba: 0x6d42e000 <<< XCUR
                                                                                          ba:
           ........




                            Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                          12
What’s Block Mode?

CRブロックはカレントブロックと同じハッシュチェー
ン上にアロケートされる

    CHAIN:       1
    CHAIN:       2
    CHAIN:       3

             :

    CHAIN:8669                                                                        cache buffer chain latch



             :

    CHAIN:nnnnn




                     Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                         13
What’s Block Mode?

Block Mode とは、
  FREE      開放モード




               Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   14
What’s Block Mode?

Block Mode とは、(RACの場合)
  XCUR     排他/カレントモード
  CR       読み取り一貫性モード
  FREE     開放モード
  SCUR     共有/カレントモード
  PI       過去イメージモード


              Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   15
What’s Block Mode?

Block Mode とは、(RACの場合)
  SCUR     共有/カレントモード

  ・更新されていない最新イメージ
  ・RACを構成しているインスタンスの間で共有可能
  ・更新がかかると XCUR になる
  ・別インスタンスで更新がかかると CR になる




              Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   16
What’s Block Mode?

Block Mode とは、(RACの場合)
  PI       過去イメージモード

  ・インスタンスリカバリ用のブロックイメージ
  ・XCUR ブロックに対して別インスタンスで更新がかかると PI になる
  ・別インスタンスのXCUR ブロックがディスクに書き出されると CR になる




              Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   17
What’s Block Mode?

Block Mode とは、(RACの場合)

     NODE1                                               NODE2
       SCUR                                                              SCUR




              Copyright © 2011 Insight Technology, Inc. All Rights Reserved.    18
What’s Block Mode?

Block Mode とは、(RACの場合)

     NODE1                                               NODE2
       XCUR
       SCUR                                                              CR
                                                                         SCUR




              Copyright © 2011 Insight Technology, Inc. All Rights Reserved.    19
What’s Block Mode?

Block Mode とは、(RACの場合)

     NODE1                                               NODE2
       XCUR
       PI                                                                CR

                                                                         XCUR




              Copyright © 2011 Insight Technology, Inc. All Rights Reserved.    20
What’s Block Mode?

Block Mode とは、(RACの場合)

     NODE1                                               NODE2
       CR
       PI                                                                CR

                                                                         XCUR




              Copyright © 2011 Insight Technology, Inc. All Rights Reserved.    21
Block Concurrent under RAC Environment

Real Application Clusters 環境におけるブロック
競合に対するアプローチ
 テーブル
 - INSERT 時は ASSM 管理によりインスタンスごとにブロックが分かれるためパフォーマンス問
   題は起こりにくい
 - 同一ブロック内のレコードに対する UPDATE / DELETE は競合する
 - ブロックサイズの調整やパーティション化などで対応する

インデックス
 - インデックスの先頭列にシーケンスなどのカウントアップ型の値や、時刻など連続する値を配
   置している場合、各インスタンスから INSERT するとリーフブロックが競合する
 - パーティション化やインデックスの先頭列の配置を工夫することで対応する




                 Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   22
Big Data on Oracle Database 11g

RDBMS としてどうやって大量データに立ち向かうか
そもそも、、、
     Oracle Database はキャッシュシステム
でも、、、、
     大量データに対しては、むしろメモリ管理がオーバーヘッドに
っじゃ、、、、
     大量データの時はバッファ・キャッシュを使わないことにしよう




                Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   23
How dose it work for Full Table Scan?

Oracle 11gR2 で大量データを検索する、、、、
         バッファ・キャッシュにはデータブロック
         がキャッシュされない!!
OWNER        OBJECT_NAM        OBJ BA                   DBABLK   LRU_FLAG      CLASS        TCH STATUS
----------   ---------- ---------- ---------------- ---------- ---------- ---------- ---------- -------
TTT          T_TTT           74298 0000000061252000        129          0          9          1 scur
TTT          T_TTT           74298 000000006124C000        130          0          4          1 scur
TTT          T_TTT           74298 00000000616BC000       3968          0          8          1 scur
TTT          T_TTT           74298 0000000061766000       3969          0          8          1 scur


                     CLASS           BLOCK TYPE
                     1               DATA BLOCK
                     4               SEGMENT HEADER
                     8               FIRST LEVEL BITMAP BLOCK
                     9               SECOND LEVEL BITMAP BLOCK




                                    Copyright © 2011 Insight Technology, Inc. All Rights Reserved.        24
Full Table Scan ? Or Direct Path Read ?

困ったときは tkprof
Rows (1st) Rows (avg) Rows (max)   Row Source Operation
---------- ---------- ----------   ---------------------------------------------------
   1000000    1000000    1000000   TABLE ACCESS FULL T_TTT (cr=70299 pr=3882 pw=0 time=1454934 us cost=1067
size=23000000 card=1000000)



Elapsed times include waiting on following events:
  Event waited on                             Times  Max. Wait Total Waited
  ----------------------------------------   Waited ---------- ------------
  library cache lock                               1      0.00         0.00
  library cache pin                                1      0.00         0.00
  SQL*Net message to client                   66668       0.00         0.10
  Disk file operations I/O                         2      0.00         0.00
                    3-
  gc current block 3-way                           2      0.00         0.00
  enq: KO - fast object checkpoint                 3      0.00         0.00
  reliable message                                 1      0.05         0.05
                    2-
  gc current block 2-way                           2      0.00         0.00
  direct path read                                 1      0.01         0.01
  SQL*Net message from client                 66668      81.79       552.67




                                      Copyright © 2011 Insight Technology, Inc. All Rights Reserved.          25
How About Direct Path Read?

最後はやっぱり 10046 trace
PARSE #140036514701864:c=13997,e=188175,p=0,cr=6,cu=0,mis=1,r=0,dep=0,og=1,plh=892208080,tim=1318202199367035
EXEC #140036514701864:c=0,e=18,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=892208080,tim=1318202199367143
WAIT #140036514701864: nam='SQL*Net message to client' ela= 2 driver id=1650815232 #bytes=1 p3=0 obj#=13755
tim=1318202199367193
WAIT #140036514701864: nam='Disk file operations I/O' ela= 4 FileOperation=2 fileno=8 filetype=2 obj#=13755
tim=1318202199367910
                       nam='
                          ='gc               3-     ela=                      obj#=74298 tim=1318202199372868
WAIT #140036514701864: nam='gc current block 3-way' ela= 930 p1=8 p2=130 p3=4 obj#=74298 tim=1318202199372868
WAIT #140036514701864: nam='enq: KO - fast object checkpoint' ela= 446 name|mode=1263468550 2=65569 0=1
obj#=74298 tim=1318202199385235
WAIT #140036514701864: nam='reliable message' ela= 54967 channel context=2105825176 channel handle=2003413296
broadcast message=2106905888 obj#=74298 tim=1318202199440846
WAIT #140036514701864: nam='enq: KO - fast object checkpoint' ela= 672 name|mode=1263468550 2=65569 0=1
obj#=74298 tim=1318202199441635
WAIT #140036514701864: nam='enq: KO - fast object checkpoint' ela= 175 name|mode=1263468545 2=65569 0=2
obj#=74298 tim=1318202199441894
                       nam='
                          ='gc               2-     ela=                       obj#=74298 tim=1318202199461953
WAIT #140036514701864: nam='gc current block 2-way' ela= 277 p1=8 p2=3968 p3=8 obj#=74298 tim=1318202199461953
                       nam='
                          ='gc               3-     ela=                      obj#=74298 tim=1318202199462497
WAIT #140036514701864: nam='gc current block 3-way' ela= 411 p1=8 p2=129 p3=9 obj#=74298 tim=1318202199462497
                       nam='
                          ='gc               2-     ela=                       obj#=74298 tim=1318202199463276
WAIT #140036514701864: nam='gc current block 2-way' ela= 241 p1=8 p2=3969 p3=8 obj#=74298 tim=1318202199463276
WAIT #140036514701864: nam='direct path read ela= 18383 file number=8 first dba=131 block cnt=13 obj#=74298
                            direct      read'
tim=1318202199487706




                                     Copyright © 2011 Insight Technology, Inc. All Rights Reserved.              26
Direct Path Read Role.

Direct Path Read の条件は、、、
    SMALL TABLE ?                                          LARGE TABLE ?
        _small_table_threshold       (blocks)
        _very_large_object_threshold (MB)
 NAME                                VALUE DESCRIPTION
 ------------------------------ ---------- ------------------------------------------------------------
 db_block_buffers                        0 Number of database blocks cached in memory
 _db_block_buffers                   23030 Number of database blocks cached in memory: hidden parameter
 _small_table_threshold                441 lower threshold level of table size for direct reads
 _very_large_object_threshold          500 upper threshold level of object size for direct reads




                                  Copyright © 2011 Insight Technology, Inc. All Rights Reserved.          27
Direct Path Read Role.

Direct Path Read の条件は、、、
  条件1:
    セグメントサイズ > 5 x “_small_table_threshold” x blocksize
  条件2:
    セグメントサイズ > “_very_large_object_threshold”
  条件3:
    10949 イベントで”条件1”を無効化

 参照:
 http://www.insight-tec.com/technical-information/11gr2からのフルスキャン.html


                      Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   28
Direct Path Read and …

Direct Path Read といえば、、、、




               Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   29
How about PQ ?

PQとは、、、
                                                                    Coordinator
             QC


                                                    Consumer                   Slave
        QS                QS


                                                     Producer
        QS                QS




              Copyright © 2011 Insight Technology, Inc. All Rights Reserved.           30
How about INPQ ?

Inter Node PQとは、、、
     QC



     QS   QS   QS               QS




               Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   31
How dose INPQ work ?

Oracle 11gR2 でINPQを実行してみたら、、、、
         バッファ・キャッシュにはデータブロック
         がキャッシュされない!!
OWNER        OBJECT_NAM        OBJ BA                   DBABLK   LRU_FLAG      CLASS        TCH STATUS
----------   ---------- ---------- ---------------- ---------- ---------- ---------- ---------- -------
TTT          T_TTT           74298 0000000061252000        129          0          9          1 scur
TTT          T_TTT           74298 000000006124C000        130          0          4          1 scur
TTT          T_TTT           74298 00000000616BC000       3968          0          8          1 scur
TTT          T_TTT           74298 0000000061766000       3969          0          8          1 scur
                                                                                                 読み取り一貫性は
                     CLASS           BLOCK TYPE                                                  どうやって保ってい
                     1               DATA BLOCK                                                  るんだろう?
                     4               SEGMENT HEADER
                     8               FIRST LEVEL BITMAP BLOCK
                     9               SECOND LEVEL BITMAP BLOCK




                                    Copyright © 2011 Insight Technology, Inc. All Rights Reserved.           32
How dose INPQ work ?

別インスタンスで更新してINPQを実行してみた、、
         でも、バッファ・キャッシュにはデータブロック
         も CR ブロックもキャッシュされない!!
OWNER        OBJECT_NAM        OBJ BA                   DBABLK   LRU_FLAG      CLASS        TCH STATUS
----------   ---------- ---------- ---------------- ---------- ---------- ---------- ---------- -------
TTT          T_TTT           74298 0000000061252000        129          0          9          1 scur
TTT          T_TTT           74298 000000006124C000        130          0          4          1 scur
TTT          T_TTT           74298 00000000616BC000       3968          0          8          1 scur
TTT          T_TTT           74298 0000000061766000       3969          0          8          1 scur
                                                                                                 読み取り一貫性は
                     CLASS           BLOCK TYPE                                                  どうやって保ってい
                     1               DATA BLOCK                                                  るんだろう???
                     4               SEGMENT HEADER
                     8               FIRST LEVEL BITMAP BLOCK
                     9               SECOND LEVEL BITMAP BLOCK




                                    Copyright © 2011 Insight Technology, Inc. All Rights Reserved.           33
How dose INPQ work ?

困ったときの tkprof 再び.
Elapsed times include waiting on following events:
  Event waited on                             Times Max. Wait Total Waited
  ---------------------------------------- Waited ---------- ------------
  PX Deq: Execution Msg                          16      1.14        11.95
  Disk file operations I/O                         9     0.06         0.06
  latch free                                       2     0.09         0.10
  gc cr block 2-way
              2-                               2955      0.00         0.99
  latch: gc element                              37      0.10         1.06
  PX Deq Credit: send blkd                      374      1.66       183.26
  PX Deq Credit: need buffer                     18      1.62         9.04
  direct path read                               12      0.10         0.61
  gc cr block congested                            9     0.00         0.00
  PX qref latch                                  57      0.00         0.00
  latch: object queue header operation             1     0.05         0.05
  asynch descriptor resize                       18      0.00         0.00




                              Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   34
How dose INPQ work ?

  “gc cr block 2-way”の正体は、、、
PARSING IN CURSOR #139733560208016 len=62 dep=1 uid=83 oct=3 lid=83 tim=1318820049985006 hv=3663269604 ad='75e32a68' sqlid='g3q0k53d5k3r4‘
  select /*+ full (t_ttt) parallel (t_ttt , 4) */ * from t_ttt
END OF STMT
PARSE #139733560208016:c=0,e=584,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=1,plh=1049962929,tim=1318820049984999
WAIT #139733560208016: nam='PX Deq: Execution Msg' ela= 12913 sleeptime/senderid=268566527 passes=1 p3=2018548888 obj#=-1
tim=1318820050011499
WAIT #139733560208016: nam='Disk file operations I/O' ela= 826 FileOperation=2 fileno=8 filetype=2 obj#=-1 tim=1318820050012533
WAIT #139733560208016: nam='latch free' ela= 91087 address=1610912864 number=497 tries=0 obj#=75802 tim=1318820050191026
WAIT #139733560208016: nam='Disk file operations I/O' ela= 64416 FileOperation=2 fileno=0 filetype=15 obj#=75802 tim=1318820050352159
*** 2011-10-17 11:54:10.956
WAIT #139733560208016: nam='Disk file operations I/O' ela= 20 FileOperation=2 fileno=0 filetype=15 obj#=75802 tim=1318820050956064
WAIT #139733560208016: nam='Disk file operations I/O' ela= 5 FileOperation=2 fileno=4 filetype=2 obj#=75802 tim=1318820051379726
WAIT #139733560208016: nam='gc cr block 2-way' ela= 755 p1=4 p2=216 p3=139 obj#=0 tim=1318820051444120
                       nam='
                          ='gc          2-     ela=                        obj#=0 tim=1318820051444120
WAIT #139733560208016: nam='gc cr block 2-way' ela= 583 p1=4 p2=12669 p3=140 obj#=0 tim=1318820051613291
                       nam='
                          ='gc          2-     ela=                          obj#=0 tim=1318820051613291
*** 2011-10-17 11:54:11.701
WAIT #139733560208016: nam='gc cr block 2-way' ela= 397 p1=4 p2=12668 p3=140 obj#=0 tim=1318820051701977
                       nam='
                          ='gc          2-     ela=                          obj#=0 tim=1318820051701977
WAIT #139733560208016: nam='gc cr block 2-way' ela= 262 p1=4 p2=12667 p3=140 obj#=0 tim=1318820051702529
                       nam='
                          ='gc          2-     ela=                          obj#=0 tim=1318820051702529
WAIT #139733560208016: nam='latch: gc element' ela= 12457 address=2080875056 number=192 tries=0 obj#=0 tim=1318820051740024
WAIT #139733560208016: nam='gc cr block 2-way' ela= 344 p1=4 p2=12666 p3=140 obj#=0 tim=1318820051755882
                       nam='
                          ='gc          2-     ela=                          obj#=0 tim=1318820051755882
WAIT #139733560208016: nam='gc cr block 2-way' ela= 711 p1=4 p2=12672 p3=140 obj#=0 tim=1318820051797398
                       nam='
                          ='gc          2-     ela=                          obj#=0 tim=1318820051797398
WAIT #139733560208016: nam='gc cr block 2-way' ela= 389 p1=4 p2=12671 p3=140 obj#=0 tim=1318820051827351
                       nam='
                          ='gc          2-     ela=                          obj#=0 tim=1318820051827351
WAIT #139733560208016: nam='gc cr block 2-way' ela= 324 p1=4 p2=12670 p3=140 obj#=0 tim=1318820051852407
                       nam='
                          ='gc          2-     ela=                          obj#=0 tim=1318820051852407
WAIT #139733560208016: nam='gc cr block 2-way' ela= 295 p1=4 p2=12675 p3=140 obj#=0 tim=1318820051869057
                       nam='
                          ='gc          2-     ela=                          obj#=0 tim=1318820051869057
WAIT #139733560208016: nam='gc cr block 2-way' ela= 328 p1=4 p2=12674 p3=140 obj#=0 tim=1318820051884177
                       nam='
                          ='gc          2-     ela=                          obj#=0 tim=1318820051884177




                                               Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                          35
How dose INPQ work ?

“obj#=0”の正体は、、、
   v$transaction で UNDO セグメントとブロック
   を特定
 SQL> select xidusn , xidslot , ubablk , ubafil from v$transaction

     XIDUSN    XIDSLOT   UBABLK UBAFIL
 ---------- ---------- -------- -------
         62         10    16366       4




                          Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   36
How dose INPQ work ?

  “gc cr block 2-way”の正体は、、、

……………………
*** 2011-10-17 11:57:01.123
WAIT #140517772372624: nam='PX Deq Credit: send blkd' ela= 410107 sleeptime/senderid=268566527 passes=1 qref=2018547544 obj#=0
tim=1318820221123410
WAIT #140517772372624: nam='gc cr block 2-way' ela= 251 p1=4 p2=16366 p3=140 obj#=0 tim=1318820221123917
                       nam='
                          ='gc          2-     ela=     p1=4 p2=16366        obj#=0 tim=1318820221123917
WAIT #140517772372624: nam='gc cr block 2-way' ela= 386 p1=4 p2=16365 p3=140 obj#=0 tim=1318820221702652
WAIT #140517772372624: nam='gc cr block 2-way' ela= 355 p1=4 p2=16364 p3=140 obj#=0 tim=1318820221703160
WAIT #140517772372624: nam='asynch descriptor resize' ela= 2 outstanding #aio=0 current aio limit=362 new aio limit=360 obj#=0
tim=1318820221703383
WAIT #140517772372624: nam='PX Deq Credit: free buffer' ela= 8 sleeptime/senderid=0 passes=0 qref=0 obj#=0 tim=1318820221703467
……………………




                                                                                      UNDOセグメント?



                                               Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                     37
How dose INPQ work ?

“obj#=0”の正体は、、、
   UNDOブロックのダンプを取得
  SQL>
  SQL> alter system dump datafile 4 block 16366;
                                          16366;
  .............................
  frmt: 0x02 chkval: 0x8c6d type: 0x02=KTU UNDO BLOCK
  .............................
  *-----------------------------
  * Rec #0x2 slt: 0x0a objn: 75802
               slt:            75802(0x0001281a) objd: 75802 tblspc: 8(0x00000008)
  *        Layer: 11 (Row) opc: 1 rci 0x01
  Undo type: Regular undo Last buffer split: No
  Temp Object: No
  Tablespace Undo: No
  rdba: 0x00000000
  *-----------------------------
  KDO undo record:
  KTB Redo
  op: 0x02 ver: 0x01
  compat bit: 4 (post-11) padding: 1
  op: C uba: 0x01003fee.0070.01
  KDO Op code: URP row dependencies Disabled
    xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x02000fff hdba: 0x0200101a
  .............................




                               Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   38
Consitency Read on INPQ.

つまり
INPQ の読み取り一貫性は、、、、
   CR ブロックではなく、UNDOブロックの送信に
   よって担保されている。
  バッファ・キャッシュ上には載らないのでx$bh
  から CR ブロックの存在を確認できない。




               Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   39
How dose Direct Path Read work ?(after flush.)

更新(未コミット)状態で、バッファ・キャッシュ を
flush した状態で、Direct Path Read したら、、、         call     count      cpu    elapsed       disk      query    current       rows
                                            ------- ------ -------- ---------- ---------- ---------- ---------- ----------
    SQL ID: 94ya02q4qvw95 Plan Hash: 892208080
                                            Parse        1     0.01       0.18          0          6          0          0
    select * from t_ttt
                                            Execute      1     0.00       0.00          0          0          0          0
    call     count       cpu    elapsed        disk     query    current        rows
                                            Fetch    66668     0.91       2.44       3882      70299          0    1000000
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------
                                            ------- ------ -------- ---------- ---------- ---------- ---------- ----------
    Parse        1      0.02      14.57           0         0          0           0
                                            total    66670     0.92       2.63       3882      70305          0    1000000
    Execute      1       0.00       0.00         0          0          0           0
    Fetch    66668       8.00    1201.26     15509    1074144          0     1000000
    ------- ------ -------- ---------- ---------- ---------- ---------- ----------
    total    66670       8.03    1215.83     15509    1074144          0     1000000
    Misses in library cache during parse: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 83
    Number of plan statistics captured: 1
    Rows (1st) Rows (avg) Rows (max) Row Source Operation
    ---------- ---------- ---------- ---------------------------------------------------
       1000000     1000000    1000000 TABLE ACCESS FULL T_TTT (cr=1074144 pr=15509 pw=0 time=1095448521 us
    cost=1067 size=23000000 card=1000000)




                                  Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                        40
How dose Direct Path Read work ?(after flush.)

更新(未コミット)状態で、バッファ・キャッシュ を
flush した状態で、Direct Path Read したら、、、
    Elapsed times include waiting on following events:
      Event waited on                             Times Max. Wait Total Waited
      ---------------------------------------- Waited ---------- ------------
      library cache lock                              1        0.25          0.25
      KJC: Wait for msg sends to complete             2        0.00          0.00
      library cache pin                               1        0.03          0.03
      SQL*Net message to client                   66668        0.00          0.11
      gc cr grant 2-way                               4        0.00          0.00
      db file sequential read                     11627        0.48        792.21
      enq: KO - fast object checkpoint                2        0.00          0.00
      reliable message                                1        0.58          0.58
      direct path read                                1        0.01          0.01
      Disk file operations I/O                        1        0.00          0.00
      gc cr block 2-way                               1        0.00          0.00
      gc cr disk read                             11623        0.00          3.96
      SQL*Net message from client                 66668       51.74        117.64
      latch: gc element                               7        0.57          0.68
      latch: row cache objects                        2        0.44          0.46
      os thread startup                               1        0.78          0.78
      KSV master wait                                 2       14.68         14.73
      ASM file metadata operation                     1        0.03          0.03
      latch: cache buffers lru chain                  2        0.02          0.02
      latch: object queue header operation            2        0.02          0.03
    ********************************************************************************
                                  Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   41
How dose Direct Path Read work ?(after flush.)

更新(未コミット)状態で、バッファ・キャッシュ を
flush した状態で、Direct Path Read したら、、、
    select * from t_ttt
    ………………
    WAIT #140098314552216: nam='enq: KO - fast object checkpoint' ela= 372 name|mode=1263468550 2=65568 0=1
    obj#=75802 tim=1318830775444681
    ………………
    WAIT #140098314552216: nam='enq: KO - fast object checkpoint' ela= 1267 name|mode=1263468550 2=65568 0=1
    obj#=75802 tim=1318830776242317
    ………………
    WAIT #140098314552216: nam='gc cr block 2-way' ela= 237 p1=4 p2=216 p3=139 obj#=0 tim=1318830780933124
    WAIT #140098314552216: nam='gc cr disk read ela= 578 p1=4 p2=2314 p3=140 obj#=0 tim=1318830780982193
                                gc         read'
    WAIT #140098314552216: nam='db file sequential read ela= 72697 file#=4 block#=2314 blocks=1 obj#=0
                                db                 read'
    tim=1318830781133792
    WAIT #140098314552216: nam='gc cr disk read ela= 412 p1=4 p2=2313 p3=140 obj#=0 tim=1318830781225220
                                gc         read'
    WAIT #140098314552216: nam='db file sequential read ela= 52559 file#=4 block#=2313 blocks=1 obj#=0
                                db                 read'
    tim=1318830781277868
    WAIT #140098314552216: nam='gc cr disk read ela= 378 p1=4 p2=2312 p3=140 obj#=0 tim=1318830781315380
                                gc         read'
    WAIT #140098314552216: nam='db file sequential read ela= 75882 file#=4 block#=2312 blocks=1 obj#=0
                                db                 read'
    tim=1318830781391595
    WAIT #140098314552216: nam='gc cr disk read ela= 405 p1=4 p2=2071 p3=140 obj#=0 tim=1318830781418874
                                gc         read'
    WAIT #140098314552216: nam='db file sequential read ela= 36178 file#=4 block#=2071 blocks=1 obj#=0
                                db                 read'
    tim=1318830781455143
    FETCH
    #140098314552216:c=16998,e=6643732,p=36,cr=319,cu=0,mis=0,r=1,dep=0,og=1,plh=892208080,tim=1318830781480
    092
    ………………
                                  Copyright © 2011 Insight Technology, Inc. All Rights Reserved.               42
Conculution

Block Mode

Concurrent under RAC Environment

Direct Path Read on 11gR2

Parallel Query (INPQ)



                Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   43
Conclution

Block Mode
  ・Oracle Database はブロックという単位でデータにアクセスしている
  ・ブロックには処理に応じたモードがある
  ・読み取り一貫性を担保するための専用のブロックがある(CRブロック)


Concurrent under RAC Environment
  ・RAC環境ではブロックのモードを切り替えながらインスタンス間で排他・共有
   の状態を制御している
  ・共有モードのブロックは各インスタンスで同時にキャッシュすることができる
  ・排他モードのブロックは一つのインスタンスでのみキャッシュすることができる




               Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   44
Conclution

Direct Path Read on 11gR2
  ・11gでは全件検索時に自動的に Direct Path Read を選択する場合がある
  ・Direct Path Read でアクセスした場合バッファ・キャッシュにはデータブロック
  はキャッシュされない


Parallel Query (INPQ)
  ・RAC環境で Parallel Query を実行すると複数のノードに処理が分散される
  ・Parallel Query で Direct Path Read が実行された場合でも読み取り一貫
  性は担保される(ただし、CRブロックではなく UNDO セグメントを使って)
  ・ただし、、、CRブロックがキャッシュから追い出されている場合は、UNDOセグ
  メントの読み込みに膨大な時間がかかるのでくれぐれも注意すること



                 Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   45
Any Question ?




             Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   46
無断転載を禁ず

この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることがあります。
株式会社インサイトテクノロジーは本書の内容に関していかなる保証もしません。また、本書の内容に関連したいかなる
損害についても責任を負いかねます。
本書で使用している製品やサービス名の名称は、各社の商標または登録商標です。




                 Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   47

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Lightweight Keycloak
Lightweight KeycloakLightweight Keycloak
Lightweight Keycloak
 
Oracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデートOracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデート
 
[dbts-2014-tokyo] 目指せExadata!! Oracle DB高速化を目指した構成
[dbts-2014-tokyo] 目指せExadata!! Oracle DB高速化を目指した構成[dbts-2014-tokyo] 目指せExadata!! Oracle DB高速化を目指した構成
[dbts-2014-tokyo] 目指せExadata!! Oracle DB高速化を目指した構成
 
Consistent hash
Consistent hashConsistent hash
Consistent hash
 
Oracle Data Masking and Subsettingのご紹介
Oracle Data Masking and Subsettingのご紹介Oracle Data Masking and Subsettingのご紹介
Oracle Data Masking and Subsettingのご紹介
 
自律型データベース Oracle Autonomous Database 最新情報
自律型データベース Oracle Autonomous Database 最新情報自律型データベース Oracle Autonomous Database 最新情報
自律型データベース Oracle Autonomous Database 最新情報
 
OCHaCafe #4 Hyperledger Fabric アプリケーション設計入門ガイドでしゃべった内容+おまけ資料
OCHaCafe #4 Hyperledger Fabric アプリケーション設計入門ガイドでしゃべった内容+おまけ資料OCHaCafe #4 Hyperledger Fabric アプリケーション設計入門ガイドでしゃべった内容+おまけ資料
OCHaCafe #4 Hyperledger Fabric アプリケーション設計入門ガイドでしゃべった内容+おまけ資料
 
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#2
 
Oracle GoldenGate Veridata概要
Oracle GoldenGate Veridata概要Oracle GoldenGate Veridata概要
Oracle GoldenGate Veridata概要
 
バックアップ時の問題から学んだDBエンジニアに必要なスキルとは
バックアップ時の問題から学んだDBエンジニアに必要なスキルとはバックアップ時の問題から学んだDBエンジニアに必要なスキルとは
バックアップ時の問題から学んだDBエンジニアに必要なスキルとは
 
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
OCI GoldenGate Overview 2021年4月版
OCI GoldenGate Overview 2021年4月版OCI GoldenGate Overview 2021年4月版
OCI GoldenGate Overview 2021年4月版
 
Zero Data Loss Recovery Applianceによるデータベース保護のアーキテクチャ
Zero Data Loss Recovery Applianceによるデータベース保護のアーキテクチャZero Data Loss Recovery Applianceによるデータベース保護のアーキテクチャ
Zero Data Loss Recovery Applianceによるデータベース保護のアーキテクチャ
 
Oracle Database / Exadata Cloud 技術情報(Oracle Cloudウェビナーシリーズ: 2020年7月9日)
Oracle Database / Exadata Cloud 技術情報(Oracle Cloudウェビナーシリーズ: 2020年7月9日)Oracle Database / Exadata Cloud 技術情報(Oracle Cloudウェビナーシリーズ: 2020年7月9日)
Oracle Database / Exadata Cloud 技術情報(Oracle Cloudウェビナーシリーズ: 2020年7月9日)
 
Oracle Database Appliance 12.1.2.2.0 アップデート及びパッチ管理について
Oracle Database Appliance 12.1.2.2.0 アップデート及びパッチ管理についてOracle Database Appliance 12.1.2.2.0 アップデート及びパッチ管理について
Oracle Database Appliance 12.1.2.2.0 アップデート及びパッチ管理について
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Analysis of Database Issues using AHF and Machine Learning v2 - SOUG
Analysis of Database Issues using AHF and Machine Learning v2 -  SOUGAnalysis of Database Issues using AHF and Machine Learning v2 -  SOUG
Analysis of Database Issues using AHF and Machine Learning v2 - SOUG
 
PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点 PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点
 
Oracle GoldenGate 19c を使用した 簡単データベース移行ガイド_v1.0
Oracle GoldenGate 19c を使用した 簡単データベース移行ガイド_v1.0Oracle GoldenGate 19c を使用した 簡単データベース移行ガイド_v1.0
Oracle GoldenGate 19c を使用した 簡単データベース移行ガイド_v1.0
 
Oracle Cloud の セキュリティ・コンプライアンス 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月16日)
Oracle Cloud の セキュリティ・コンプライアンス 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月16日) Oracle Cloud の セキュリティ・コンプライアンス 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月16日)
Oracle Cloud の セキュリティ・コンプライアンス 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月16日)
 

Ähnlich wie [INSIGHT OUT 2011] C22 RAC buffer sharing の仕組み(yamashita)

[INSIGHT OUT 2011] c25 Super RACへの道 infinibandを使ったクラスターテクノロジー紹介
[INSIGHT OUT 2011] c25 Super RACへの道 infinibandを使ったクラスターテクノロジー紹介[INSIGHT OUT 2011] c25 Super RACへの道 infinibandを使ったクラスターテクノロジー紹介
[INSIGHT OUT 2011] c25 Super RACへの道 infinibandを使ったクラスターテクノロジー紹介
Insight Technology, Inc.
 
Osc2012 tokyo fall_home_san_nayamaguti
Osc2012 tokyo fall_home_san_nayamagutiOsc2012 tokyo fall_home_san_nayamaguti
Osc2012 tokyo fall_home_san_nayamaguti
Noriyuki Yamaguchi
 
Ns2240series users manual_07
Ns2240series users manual_07Ns2240series users manual_07
Ns2240series users manual_07
squat12
 
Oracle RACの弱点を克服する infinibandを使ったクラスターテクノロジー
Oracle RACの弱点を克服する infinibandを使ったクラスターテクノロジーOracle RACの弱点を克服する infinibandを使ったクラスターテクノロジー
Oracle RACの弱点を克服する infinibandを使ったクラスターテクノロジー
Insight Technology, Inc.
 
Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用
Yukio Kumazawa
 

Ähnlich wie [INSIGHT OUT 2011] C22 RAC buffer sharing の仕組み(yamashita) (20)

SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月
SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月
SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月
 
0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと
 
Google 20130218
Google 20130218Google 20130218
Google 20130218
 
[INSIGHT OUT 2011] c25 Super RACへの道 infinibandを使ったクラスターテクノロジー紹介
[INSIGHT OUT 2011] c25 Super RACへの道 infinibandを使ったクラスターテクノロジー紹介[INSIGHT OUT 2011] c25 Super RACへの道 infinibandを使ったクラスターテクノロジー紹介
[INSIGHT OUT 2011] c25 Super RACへの道 infinibandを使ったクラスターテクノロジー紹介
 
ScyllaDBユーザー勉強会 #1
ScyllaDBユーザー勉強会 #1ScyllaDBユーザー勉強会 #1
ScyllaDBユーザー勉強会 #1
 
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
 
Osc2012 tokyo fall_home_san_nayamaguti
Osc2012 tokyo fall_home_san_nayamagutiOsc2012 tokyo fall_home_san_nayamaguti
Osc2012 tokyo fall_home_san_nayamaguti
 
Ns2240series users manual_07
Ns2240series users manual_07Ns2240series users manual_07
Ns2240series users manual_07
 
【第5回東京SoftLayer勉強会】LT7 SoftLayerでOpenStackを動かしてみた
【第5回東京SoftLayer勉強会】LT7 SoftLayerでOpenStackを動かしてみた【第5回東京SoftLayer勉強会】LT7 SoftLayerでOpenStackを動かしてみた
【第5回東京SoftLayer勉強会】LT7 SoftLayerでOpenStackを動かしてみた
 
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
 
Oracle RACの弱点を克服する infinibandを使ったクラスターテクノロジー
Oracle RACの弱点を克服する infinibandを使ったクラスターテクノロジーOracle RACの弱点を克服する infinibandを使ったクラスターテクノロジー
Oracle RACの弱点を克服する infinibandを使ったクラスターテクノロジー
 
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#3
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#3しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#3
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#3
 
Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用
 
第9回「Fusion-io ioDriveがもたらした新世界とテクノロジーの肝」(2011/10/06 on しすなま!) ①Fusion-io様資料
第9回「Fusion-io ioDriveがもたらした新世界とテクノロジーの肝」(2011/10/06 on しすなま!) ①Fusion-io様資料第9回「Fusion-io ioDriveがもたらした新世界とテクノロジーの肝」(2011/10/06 on しすなま!) ①Fusion-io様資料
第9回「Fusion-io ioDriveがもたらした新世界とテクノロジーの肝」(2011/10/06 on しすなま!) ①Fusion-io様資料
 
分散型台帳技術Orb DLTの紹介
分散型台帳技術Orb DLTの紹介分散型台帳技術Orb DLTの紹介
分散型台帳技術Orb DLTの紹介
 
Orb oracle
Orb oracleOrb oracle
Orb oracle
 
ヤフーを支えるフラッシュストレージ
ヤフーを支えるフラッシュストレージヤフーを支えるフラッシュストレージ
ヤフーを支えるフラッシュストレージ
 
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
 
Share pointを支えるsql server2014最新情報
Share pointを支えるsql server2014最新情報Share pointを支えるsql server2014最新情報
Share pointを支えるsql server2014最新情報
 
Oracleのトランケートについて知っておくべきこと
Oracleのトランケートについて知っておくべきことOracleのトランケートについて知っておくべきこと
Oracleのトランケートについて知っておくべきこと
 

Mehr von Insight Technology, Inc.

コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
Insight Technology, Inc.
 

Mehr von Insight Technology, Inc. (20)

グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
 
Docker and the Oracle Database
Docker and the Oracle DatabaseDocker and the Oracle Database
Docker and the Oracle Database
 
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
 
事例を通じて機械学習とは何かを説明する
事例を通じて機械学習とは何かを説明する事例を通じて機械学習とは何かを説明する
事例を通じて機械学習とは何かを説明する
 
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
 
MBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごとMBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごと
 
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
 
DBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォームDBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォーム
 
SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門
 
Lunch & Learn, AWS NoSQL Services
Lunch & Learn, AWS NoSQL ServicesLunch & Learn, AWS NoSQL Services
Lunch & Learn, AWS NoSQL Services
 
db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019オープニングセッション @ 森田 俊哉 db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019オープニングセッション @ 森田 俊哉
 
db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也
 
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
 
難しいアプリケーション移行、手軽に試してみませんか?
難しいアプリケーション移行、手軽に試してみませんか?難しいアプリケーション移行、手軽に試してみませんか?
難しいアプリケーション移行、手軽に試してみませんか?
 
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
 
そのデータベース、クラウドで使ってみませんか?
そのデータベース、クラウドで使ってみませんか?そのデータベース、クラウドで使ってみませんか?
そのデータベース、クラウドで使ってみませんか?
 
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
 
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。 複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
 
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
 
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
 

[INSIGHT OUT 2011] C22 RAC buffer sharing の仕組み(yamashita)

  • 1. Block Mode で紐解く Oracle Real Application Clusters の Buffer Sharing 要はCR ~ 要はCR Block ~ Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 1
  • 2. その前に、、、 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 2
  • 3. What’s Real Application Clusters ? Real Application Clusters とは、、、 構成における特徴 機能における特徴 - 複数サーバで共有ストレージに接続 - 複数ノードで並行処理することによる - 全てのサーバはACTIVE パフォーマンスアップ - サーバ間を高速ネットワークで接続 - 複数のACTIVEサーバによる高可用性 - 複数インスタンスでDBを共有 - ノード追加による拡張性 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 3
  • 4. What’s Real Application Clusters ? Real Application Clusters とは、、、 パフォーマンスアップに対するソリューション スケールアップによる性能・コストの限界 スケールアウトによるリソース限界の打破 スケーラビリティーの壁 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 4
  • 5. What’s Real Application Clusters ? スケーラビリティーの壁 キーワードは ブロックの モード サーバは分割してもデータは共有 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 5
  • 6. Data Block ブロックとは、、、、 IOの最小単位 表領域にセグメントを格納 セグメントは複数のエクステントで構成 エクステントはブロックの集まり ブロック内にレコードを格納 Diskから読み取ったブロックはSGA内の バッファ・キャッシュで管理 表領域 エクステント セグメント ブロック Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 6
  • 7. What’s Block Mode? Mode とは、 OWNER OBJECT_NAM OBJ BA DBABLK LRU_FLAG CLASS TCH STATUS ---------- ---------- ---------- ---------------- ---------- ---------- ---------- ---------- -------- TTT T_TTT 74984 0000000062152000 4120 1 8 1 xcur TTT T_TTT 74984 0000000065D08000 4121 1 9 1 xcur TTT T_TTT 74984 0000000061916000 4122 1 4 8 xcur TTT T_TTT 74984 000000006BD0E000 4123 1 1 8 xcur TTT T_TTT 74984 000000006914E000 4124 1 1 8 xcur TTT T_TTT 74984 0000000068A2C000 4125 1 1 8 xcur TTT T_TTT 74984 00000000696F4000 4126 1 1 8 xcur TTT T_TTT 74984 000000006439E000 4127 1 1 8 xcur TTT I_TTT 74985 00000000638D8000 4128 1 8 1 xcur TTT I_TTT 74985 0000000069B74000 4129 1 9 1 xcur TTT I_TTT 74985 000000006267E000 4130 1 4 5 xcur TTT I_TTT 74985 0000000069558000 4131 1 1 1 xcur Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 7
  • 8. What’s Block Mode? Block Mode とは、 XCUR 排他/カレントモード CR 読み取り一貫性モード FREE 開放モード Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 8
  • 9. What’s Block Mode? Block Mode とは、 XCUR 排他/カレントモード ・ブロックの最新イメージ ・シングルインスタンス環境では SELECT してバッファ・キャッシュに載った時 点で XCUR になる ・行やセグメントに対する”排他”ではなく、インスタンスに対する”排他” Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 9
  • 10. What’s Block Mode? Block Mode とは、 CR 読み取り一貫性モード ・読み取り一貫性を担保するために生成される一時的なブロック ・ブロック一つに対して複数の CR ブロックが生成される場合がある ・ブロック一つに対して生成される CR ブロックの数には上限がある キーワード:_db_block_max_cr_dba ・CR ブロックは必ずしも SELECT の際にだけ発生するわけではない 参照: http://www.insight-tec.com/mailmagazine/ora3/vol171.html Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 10
  • 11. What’s Block Mode? Block Mode とは、 CR 読み取り一貫性モード SELECT UPDATE COMMIT SESSION:1 SCN:10 XCUR SCN:20 XCUR undo SCN:20 XCUR DATA : AA DATA : BB DATA : BB SESSION:2 SELECT SELECT SCN:10 CR DATA : AA Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 11
  • 12. What’s Block Mode? CRブロックはカレントブロックと同じハッシュチェー ン上にアロケートされる ....................... CHAIN: 8669 LOC: 0x7c772878 HEAD: [0x6ebcadf8,0x6d7b0118] BH (0x6ebcad48) file#: 8 rdba: 0x0200101b (8/4123) class: 1 ba: 0x6ea76000 ........ BH (0x61bd0858) file#: 8 rdba: 0x0200101b (8/4123) class: 1 ba: 0x61af2000 ........ BH (0x623c3070) file#: 8 rdba: 0x0200101b (8/4123) class: 1 ba: 0x621cc000 ........ BH (0x6d7c5528) file#: 8 rdba: 0x0200101b (8/4123) class: 1 ba: 0x6d5fe000 ........ BH (0x647ccaa8) file#: 8 rdba: 0x0200101b (8/4123) class: 1 ba: 0x6469e000 ........ BH (0x6bbd77f8) file#: 8 rdba: 0x0200101b (8/4123) class: 1 ba: 0x6bb8a000 ........ BH (0x6d7b0068) file#: 8 rdba: 0x0200101b (8/4123) class: rdba: 1 ba: 0x6d42e000 <<< XCUR ba: ........ Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 12
  • 13. What’s Block Mode? CRブロックはカレントブロックと同じハッシュチェー ン上にアロケートされる CHAIN: 1 CHAIN: 2 CHAIN: 3 : CHAIN:8669 cache buffer chain latch : CHAIN:nnnnn Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 13
  • 14. What’s Block Mode? Block Mode とは、 FREE 開放モード Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 14
  • 15. What’s Block Mode? Block Mode とは、(RACの場合) XCUR 排他/カレントモード CR 読み取り一貫性モード FREE 開放モード SCUR 共有/カレントモード PI 過去イメージモード Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 15
  • 16. What’s Block Mode? Block Mode とは、(RACの場合) SCUR 共有/カレントモード ・更新されていない最新イメージ ・RACを構成しているインスタンスの間で共有可能 ・更新がかかると XCUR になる ・別インスタンスで更新がかかると CR になる Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 16
  • 17. What’s Block Mode? Block Mode とは、(RACの場合) PI 過去イメージモード ・インスタンスリカバリ用のブロックイメージ ・XCUR ブロックに対して別インスタンスで更新がかかると PI になる ・別インスタンスのXCUR ブロックがディスクに書き出されると CR になる Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 17
  • 18. What’s Block Mode? Block Mode とは、(RACの場合) NODE1 NODE2 SCUR SCUR Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 18
  • 19. What’s Block Mode? Block Mode とは、(RACの場合) NODE1 NODE2 XCUR SCUR CR SCUR Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 19
  • 20. What’s Block Mode? Block Mode とは、(RACの場合) NODE1 NODE2 XCUR PI CR XCUR Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 20
  • 21. What’s Block Mode? Block Mode とは、(RACの場合) NODE1 NODE2 CR PI CR XCUR Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 21
  • 22. Block Concurrent under RAC Environment Real Application Clusters 環境におけるブロック 競合に対するアプローチ テーブル - INSERT 時は ASSM 管理によりインスタンスごとにブロックが分かれるためパフォーマンス問 題は起こりにくい - 同一ブロック内のレコードに対する UPDATE / DELETE は競合する - ブロックサイズの調整やパーティション化などで対応する インデックス - インデックスの先頭列にシーケンスなどのカウントアップ型の値や、時刻など連続する値を配 置している場合、各インスタンスから INSERT するとリーフブロックが競合する - パーティション化やインデックスの先頭列の配置を工夫することで対応する Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 22
  • 23. Big Data on Oracle Database 11g RDBMS としてどうやって大量データに立ち向かうか そもそも、、、 Oracle Database はキャッシュシステム でも、、、、 大量データに対しては、むしろメモリ管理がオーバーヘッドに っじゃ、、、、 大量データの時はバッファ・キャッシュを使わないことにしよう Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 23
  • 24. How dose it work for Full Table Scan? Oracle 11gR2 で大量データを検索する、、、、 バッファ・キャッシュにはデータブロック がキャッシュされない!! OWNER OBJECT_NAM OBJ BA DBABLK LRU_FLAG CLASS TCH STATUS ---------- ---------- ---------- ---------------- ---------- ---------- ---------- ---------- ------- TTT T_TTT 74298 0000000061252000 129 0 9 1 scur TTT T_TTT 74298 000000006124C000 130 0 4 1 scur TTT T_TTT 74298 00000000616BC000 3968 0 8 1 scur TTT T_TTT 74298 0000000061766000 3969 0 8 1 scur CLASS BLOCK TYPE 1 DATA BLOCK 4 SEGMENT HEADER 8 FIRST LEVEL BITMAP BLOCK 9 SECOND LEVEL BITMAP BLOCK Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 24
  • 25. Full Table Scan ? Or Direct Path Read ? 困ったときは tkprof Rows (1st) Rows (avg) Rows (max) Row Source Operation ---------- ---------- ---------- --------------------------------------------------- 1000000 1000000 1000000 TABLE ACCESS FULL T_TTT (cr=70299 pr=3882 pw=0 time=1454934 us cost=1067 size=23000000 card=1000000) Elapsed times include waiting on following events: Event waited on Times Max. Wait Total Waited ---------------------------------------- Waited ---------- ------------ library cache lock 1 0.00 0.00 library cache pin 1 0.00 0.00 SQL*Net message to client 66668 0.00 0.10 Disk file operations I/O 2 0.00 0.00 3- gc current block 3-way 2 0.00 0.00 enq: KO - fast object checkpoint 3 0.00 0.00 reliable message 1 0.05 0.05 2- gc current block 2-way 2 0.00 0.00 direct path read 1 0.01 0.01 SQL*Net message from client 66668 81.79 552.67 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 25
  • 26. How About Direct Path Read? 最後はやっぱり 10046 trace PARSE #140036514701864:c=13997,e=188175,p=0,cr=6,cu=0,mis=1,r=0,dep=0,og=1,plh=892208080,tim=1318202199367035 EXEC #140036514701864:c=0,e=18,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=892208080,tim=1318202199367143 WAIT #140036514701864: nam='SQL*Net message to client' ela= 2 driver id=1650815232 #bytes=1 p3=0 obj#=13755 tim=1318202199367193 WAIT #140036514701864: nam='Disk file operations I/O' ela= 4 FileOperation=2 fileno=8 filetype=2 obj#=13755 tim=1318202199367910 nam=' ='gc 3- ela= obj#=74298 tim=1318202199372868 WAIT #140036514701864: nam='gc current block 3-way' ela= 930 p1=8 p2=130 p3=4 obj#=74298 tim=1318202199372868 WAIT #140036514701864: nam='enq: KO - fast object checkpoint' ela= 446 name|mode=1263468550 2=65569 0=1 obj#=74298 tim=1318202199385235 WAIT #140036514701864: nam='reliable message' ela= 54967 channel context=2105825176 channel handle=2003413296 broadcast message=2106905888 obj#=74298 tim=1318202199440846 WAIT #140036514701864: nam='enq: KO - fast object checkpoint' ela= 672 name|mode=1263468550 2=65569 0=1 obj#=74298 tim=1318202199441635 WAIT #140036514701864: nam='enq: KO - fast object checkpoint' ela= 175 name|mode=1263468545 2=65569 0=2 obj#=74298 tim=1318202199441894 nam=' ='gc 2- ela= obj#=74298 tim=1318202199461953 WAIT #140036514701864: nam='gc current block 2-way' ela= 277 p1=8 p2=3968 p3=8 obj#=74298 tim=1318202199461953 nam=' ='gc 3- ela= obj#=74298 tim=1318202199462497 WAIT #140036514701864: nam='gc current block 3-way' ela= 411 p1=8 p2=129 p3=9 obj#=74298 tim=1318202199462497 nam=' ='gc 2- ela= obj#=74298 tim=1318202199463276 WAIT #140036514701864: nam='gc current block 2-way' ela= 241 p1=8 p2=3969 p3=8 obj#=74298 tim=1318202199463276 WAIT #140036514701864: nam='direct path read ela= 18383 file number=8 first dba=131 block cnt=13 obj#=74298 direct read' tim=1318202199487706 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 26
  • 27. Direct Path Read Role. Direct Path Read の条件は、、、 SMALL TABLE ? LARGE TABLE ? _small_table_threshold (blocks) _very_large_object_threshold (MB) NAME VALUE DESCRIPTION ------------------------------ ---------- ------------------------------------------------------------ db_block_buffers 0 Number of database blocks cached in memory _db_block_buffers 23030 Number of database blocks cached in memory: hidden parameter _small_table_threshold 441 lower threshold level of table size for direct reads _very_large_object_threshold 500 upper threshold level of object size for direct reads Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 27
  • 28. Direct Path Read Role. Direct Path Read の条件は、、、 条件1: セグメントサイズ > 5 x “_small_table_threshold” x blocksize 条件2: セグメントサイズ > “_very_large_object_threshold” 条件3: 10949 イベントで”条件1”を無効化 参照: http://www.insight-tec.com/technical-information/11gr2からのフルスキャン.html Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 28
  • 29. Direct Path Read and … Direct Path Read といえば、、、、 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 29
  • 30. How about PQ ? PQとは、、、 Coordinator QC Consumer Slave QS QS Producer QS QS Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 30
  • 31. How about INPQ ? Inter Node PQとは、、、 QC QS QS QS QS Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 31
  • 32. How dose INPQ work ? Oracle 11gR2 でINPQを実行してみたら、、、、 バッファ・キャッシュにはデータブロック がキャッシュされない!! OWNER OBJECT_NAM OBJ BA DBABLK LRU_FLAG CLASS TCH STATUS ---------- ---------- ---------- ---------------- ---------- ---------- ---------- ---------- ------- TTT T_TTT 74298 0000000061252000 129 0 9 1 scur TTT T_TTT 74298 000000006124C000 130 0 4 1 scur TTT T_TTT 74298 00000000616BC000 3968 0 8 1 scur TTT T_TTT 74298 0000000061766000 3969 0 8 1 scur 読み取り一貫性は CLASS BLOCK TYPE どうやって保ってい 1 DATA BLOCK るんだろう? 4 SEGMENT HEADER 8 FIRST LEVEL BITMAP BLOCK 9 SECOND LEVEL BITMAP BLOCK Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 32
  • 33. How dose INPQ work ? 別インスタンスで更新してINPQを実行してみた、、 でも、バッファ・キャッシュにはデータブロック も CR ブロックもキャッシュされない!! OWNER OBJECT_NAM OBJ BA DBABLK LRU_FLAG CLASS TCH STATUS ---------- ---------- ---------- ---------------- ---------- ---------- ---------- ---------- ------- TTT T_TTT 74298 0000000061252000 129 0 9 1 scur TTT T_TTT 74298 000000006124C000 130 0 4 1 scur TTT T_TTT 74298 00000000616BC000 3968 0 8 1 scur TTT T_TTT 74298 0000000061766000 3969 0 8 1 scur 読み取り一貫性は CLASS BLOCK TYPE どうやって保ってい 1 DATA BLOCK るんだろう??? 4 SEGMENT HEADER 8 FIRST LEVEL BITMAP BLOCK 9 SECOND LEVEL BITMAP BLOCK Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 33
  • 34. How dose INPQ work ? 困ったときの tkprof 再び. Elapsed times include waiting on following events: Event waited on Times Max. Wait Total Waited ---------------------------------------- Waited ---------- ------------ PX Deq: Execution Msg 16 1.14 11.95 Disk file operations I/O 9 0.06 0.06 latch free 2 0.09 0.10 gc cr block 2-way 2- 2955 0.00 0.99 latch: gc element 37 0.10 1.06 PX Deq Credit: send blkd 374 1.66 183.26 PX Deq Credit: need buffer 18 1.62 9.04 direct path read 12 0.10 0.61 gc cr block congested 9 0.00 0.00 PX qref latch 57 0.00 0.00 latch: object queue header operation 1 0.05 0.05 asynch descriptor resize 18 0.00 0.00 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 34
  • 35. How dose INPQ work ? “gc cr block 2-way”の正体は、、、 PARSING IN CURSOR #139733560208016 len=62 dep=1 uid=83 oct=3 lid=83 tim=1318820049985006 hv=3663269604 ad='75e32a68' sqlid='g3q0k53d5k3r4‘ select /*+ full (t_ttt) parallel (t_ttt , 4) */ * from t_ttt END OF STMT PARSE #139733560208016:c=0,e=584,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=1,plh=1049962929,tim=1318820049984999 WAIT #139733560208016: nam='PX Deq: Execution Msg' ela= 12913 sleeptime/senderid=268566527 passes=1 p3=2018548888 obj#=-1 tim=1318820050011499 WAIT #139733560208016: nam='Disk file operations I/O' ela= 826 FileOperation=2 fileno=8 filetype=2 obj#=-1 tim=1318820050012533 WAIT #139733560208016: nam='latch free' ela= 91087 address=1610912864 number=497 tries=0 obj#=75802 tim=1318820050191026 WAIT #139733560208016: nam='Disk file operations I/O' ela= 64416 FileOperation=2 fileno=0 filetype=15 obj#=75802 tim=1318820050352159 *** 2011-10-17 11:54:10.956 WAIT #139733560208016: nam='Disk file operations I/O' ela= 20 FileOperation=2 fileno=0 filetype=15 obj#=75802 tim=1318820050956064 WAIT #139733560208016: nam='Disk file operations I/O' ela= 5 FileOperation=2 fileno=4 filetype=2 obj#=75802 tim=1318820051379726 WAIT #139733560208016: nam='gc cr block 2-way' ela= 755 p1=4 p2=216 p3=139 obj#=0 tim=1318820051444120 nam=' ='gc 2- ela= obj#=0 tim=1318820051444120 WAIT #139733560208016: nam='gc cr block 2-way' ela= 583 p1=4 p2=12669 p3=140 obj#=0 tim=1318820051613291 nam=' ='gc 2- ela= obj#=0 tim=1318820051613291 *** 2011-10-17 11:54:11.701 WAIT #139733560208016: nam='gc cr block 2-way' ela= 397 p1=4 p2=12668 p3=140 obj#=0 tim=1318820051701977 nam=' ='gc 2- ela= obj#=0 tim=1318820051701977 WAIT #139733560208016: nam='gc cr block 2-way' ela= 262 p1=4 p2=12667 p3=140 obj#=0 tim=1318820051702529 nam=' ='gc 2- ela= obj#=0 tim=1318820051702529 WAIT #139733560208016: nam='latch: gc element' ela= 12457 address=2080875056 number=192 tries=0 obj#=0 tim=1318820051740024 WAIT #139733560208016: nam='gc cr block 2-way' ela= 344 p1=4 p2=12666 p3=140 obj#=0 tim=1318820051755882 nam=' ='gc 2- ela= obj#=0 tim=1318820051755882 WAIT #139733560208016: nam='gc cr block 2-way' ela= 711 p1=4 p2=12672 p3=140 obj#=0 tim=1318820051797398 nam=' ='gc 2- ela= obj#=0 tim=1318820051797398 WAIT #139733560208016: nam='gc cr block 2-way' ela= 389 p1=4 p2=12671 p3=140 obj#=0 tim=1318820051827351 nam=' ='gc 2- ela= obj#=0 tim=1318820051827351 WAIT #139733560208016: nam='gc cr block 2-way' ela= 324 p1=4 p2=12670 p3=140 obj#=0 tim=1318820051852407 nam=' ='gc 2- ela= obj#=0 tim=1318820051852407 WAIT #139733560208016: nam='gc cr block 2-way' ela= 295 p1=4 p2=12675 p3=140 obj#=0 tim=1318820051869057 nam=' ='gc 2- ela= obj#=0 tim=1318820051869057 WAIT #139733560208016: nam='gc cr block 2-way' ela= 328 p1=4 p2=12674 p3=140 obj#=0 tim=1318820051884177 nam=' ='gc 2- ela= obj#=0 tim=1318820051884177 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 35
  • 36. How dose INPQ work ? “obj#=0”の正体は、、、 v$transaction で UNDO セグメントとブロック を特定 SQL> select xidusn , xidslot , ubablk , ubafil from v$transaction XIDUSN XIDSLOT UBABLK UBAFIL ---------- ---------- -------- ------- 62 10 16366 4 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 36
  • 37. How dose INPQ work ? “gc cr block 2-way”の正体は、、、 …………………… *** 2011-10-17 11:57:01.123 WAIT #140517772372624: nam='PX Deq Credit: send blkd' ela= 410107 sleeptime/senderid=268566527 passes=1 qref=2018547544 obj#=0 tim=1318820221123410 WAIT #140517772372624: nam='gc cr block 2-way' ela= 251 p1=4 p2=16366 p3=140 obj#=0 tim=1318820221123917 nam=' ='gc 2- ela= p1=4 p2=16366 obj#=0 tim=1318820221123917 WAIT #140517772372624: nam='gc cr block 2-way' ela= 386 p1=4 p2=16365 p3=140 obj#=0 tim=1318820221702652 WAIT #140517772372624: nam='gc cr block 2-way' ela= 355 p1=4 p2=16364 p3=140 obj#=0 tim=1318820221703160 WAIT #140517772372624: nam='asynch descriptor resize' ela= 2 outstanding #aio=0 current aio limit=362 new aio limit=360 obj#=0 tim=1318820221703383 WAIT #140517772372624: nam='PX Deq Credit: free buffer' ela= 8 sleeptime/senderid=0 passes=0 qref=0 obj#=0 tim=1318820221703467 …………………… UNDOセグメント? Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 37
  • 38. How dose INPQ work ? “obj#=0”の正体は、、、 UNDOブロックのダンプを取得 SQL> SQL> alter system dump datafile 4 block 16366; 16366; ............................. frmt: 0x02 chkval: 0x8c6d type: 0x02=KTU UNDO BLOCK ............................. *----------------------------- * Rec #0x2 slt: 0x0a objn: 75802 slt: 75802(0x0001281a) objd: 75802 tblspc: 8(0x00000008) * Layer: 11 (Row) opc: 1 rci 0x01 Undo type: Regular undo Last buffer split: No Temp Object: No Tablespace Undo: No rdba: 0x00000000 *----------------------------- KDO undo record: KTB Redo op: 0x02 ver: 0x01 compat bit: 4 (post-11) padding: 1 op: C uba: 0x01003fee.0070.01 KDO Op code: URP row dependencies Disabled xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x02000fff hdba: 0x0200101a ............................. Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 38
  • 39. Consitency Read on INPQ. つまり INPQ の読み取り一貫性は、、、、 CR ブロックではなく、UNDOブロックの送信に よって担保されている。 バッファ・キャッシュ上には載らないのでx$bh から CR ブロックの存在を確認できない。 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 39
  • 40. How dose Direct Path Read work ?(after flush.) 更新(未コミット)状態で、バッファ・キャッシュ を flush した状態で、Direct Path Read したら、、、 call count cpu elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- ---------- ---------- SQL ID: 94ya02q4qvw95 Plan Hash: 892208080 Parse 1 0.01 0.18 0 6 0 0 select * from t_ttt Execute 1 0.00 0.00 0 0 0 0 call count cpu elapsed disk query current rows Fetch 66668 0.91 2.44 3882 70299 0 1000000 ------- ------ -------- ---------- ---------- ---------- ---------- ---------- ------- ------ -------- ---------- ---------- ---------- ---------- ---------- Parse 1 0.02 14.57 0 0 0 0 total 66670 0.92 2.63 3882 70305 0 1000000 Execute 1 0.00 0.00 0 0 0 0 Fetch 66668 8.00 1201.26 15509 1074144 0 1000000 ------- ------ -------- ---------- ---------- ---------- ---------- ---------- total 66670 8.03 1215.83 15509 1074144 0 1000000 Misses in library cache during parse: 1 Optimizer mode: ALL_ROWS Parsing user id: 83 Number of plan statistics captured: 1 Rows (1st) Rows (avg) Rows (max) Row Source Operation ---------- ---------- ---------- --------------------------------------------------- 1000000 1000000 1000000 TABLE ACCESS FULL T_TTT (cr=1074144 pr=15509 pw=0 time=1095448521 us cost=1067 size=23000000 card=1000000) Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 40
  • 41. How dose Direct Path Read work ?(after flush.) 更新(未コミット)状態で、バッファ・キャッシュ を flush した状態で、Direct Path Read したら、、、 Elapsed times include waiting on following events: Event waited on Times Max. Wait Total Waited ---------------------------------------- Waited ---------- ------------ library cache lock 1 0.25 0.25 KJC: Wait for msg sends to complete 2 0.00 0.00 library cache pin 1 0.03 0.03 SQL*Net message to client 66668 0.00 0.11 gc cr grant 2-way 4 0.00 0.00 db file sequential read 11627 0.48 792.21 enq: KO - fast object checkpoint 2 0.00 0.00 reliable message 1 0.58 0.58 direct path read 1 0.01 0.01 Disk file operations I/O 1 0.00 0.00 gc cr block 2-way 1 0.00 0.00 gc cr disk read 11623 0.00 3.96 SQL*Net message from client 66668 51.74 117.64 latch: gc element 7 0.57 0.68 latch: row cache objects 2 0.44 0.46 os thread startup 1 0.78 0.78 KSV master wait 2 14.68 14.73 ASM file metadata operation 1 0.03 0.03 latch: cache buffers lru chain 2 0.02 0.02 latch: object queue header operation 2 0.02 0.03 ******************************************************************************** Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 41
  • 42. How dose Direct Path Read work ?(after flush.) 更新(未コミット)状態で、バッファ・キャッシュ を flush した状態で、Direct Path Read したら、、、 select * from t_ttt ……………… WAIT #140098314552216: nam='enq: KO - fast object checkpoint' ela= 372 name|mode=1263468550 2=65568 0=1 obj#=75802 tim=1318830775444681 ……………… WAIT #140098314552216: nam='enq: KO - fast object checkpoint' ela= 1267 name|mode=1263468550 2=65568 0=1 obj#=75802 tim=1318830776242317 ……………… WAIT #140098314552216: nam='gc cr block 2-way' ela= 237 p1=4 p2=216 p3=139 obj#=0 tim=1318830780933124 WAIT #140098314552216: nam='gc cr disk read ela= 578 p1=4 p2=2314 p3=140 obj#=0 tim=1318830780982193 gc read' WAIT #140098314552216: nam='db file sequential read ela= 72697 file#=4 block#=2314 blocks=1 obj#=0 db read' tim=1318830781133792 WAIT #140098314552216: nam='gc cr disk read ela= 412 p1=4 p2=2313 p3=140 obj#=0 tim=1318830781225220 gc read' WAIT #140098314552216: nam='db file sequential read ela= 52559 file#=4 block#=2313 blocks=1 obj#=0 db read' tim=1318830781277868 WAIT #140098314552216: nam='gc cr disk read ela= 378 p1=4 p2=2312 p3=140 obj#=0 tim=1318830781315380 gc read' WAIT #140098314552216: nam='db file sequential read ela= 75882 file#=4 block#=2312 blocks=1 obj#=0 db read' tim=1318830781391595 WAIT #140098314552216: nam='gc cr disk read ela= 405 p1=4 p2=2071 p3=140 obj#=0 tim=1318830781418874 gc read' WAIT #140098314552216: nam='db file sequential read ela= 36178 file#=4 block#=2071 blocks=1 obj#=0 db read' tim=1318830781455143 FETCH #140098314552216:c=16998,e=6643732,p=36,cr=319,cu=0,mis=0,r=1,dep=0,og=1,plh=892208080,tim=1318830781480 092 ……………… Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 42
  • 43. Conculution Block Mode Concurrent under RAC Environment Direct Path Read on 11gR2 Parallel Query (INPQ) Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 43
  • 44. Conclution Block Mode ・Oracle Database はブロックという単位でデータにアクセスしている ・ブロックには処理に応じたモードがある ・読み取り一貫性を担保するための専用のブロックがある(CRブロック) Concurrent under RAC Environment ・RAC環境ではブロックのモードを切り替えながらインスタンス間で排他・共有 の状態を制御している ・共有モードのブロックは各インスタンスで同時にキャッシュすることができる ・排他モードのブロックは一つのインスタンスでのみキャッシュすることができる Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 44
  • 45. Conclution Direct Path Read on 11gR2 ・11gでは全件検索時に自動的に Direct Path Read を選択する場合がある ・Direct Path Read でアクセスした場合バッファ・キャッシュにはデータブロック はキャッシュされない Parallel Query (INPQ) ・RAC環境で Parallel Query を実行すると複数のノードに処理が分散される ・Parallel Query で Direct Path Read が実行された場合でも読み取り一貫 性は担保される(ただし、CRブロックではなく UNDO セグメントを使って) ・ただし、、、CRブロックがキャッシュから追い出されている場合は、UNDOセグ メントの読み込みに膨大な時間がかかるのでくれぐれも注意すること Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 45
  • 46. Any Question ? Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 46