ロール・バックセグメントに関する検証 その3
~ロールバックセグメントに関する検証 その3 ~
ペンネーム ちゃむ
前回は、プライベート・ロールバック・セグメントの使用される順番に関して
説明した。
今回は、TRANSACTIONS_PER_ROLLBACK_SEGMENTに関して掘り下げて調べていきた
いと思う。
TRANSACTIONS_PER_ROLLBACK_SEGMENT
マニュアルには以下のように書いてある。
---------------------------------------------------------------------- TRANSACTIONS_PER_ROLLBACK_SEGMENT には、各ロールバック・セグメントを処 理する同時トランザクションの数を指定します。起動時に取得されるロールバ ック・セグメントの最小数は、TRANSACTIONS をこのパラメータの値で割った数 です。たとえば、TRANSACTIONS が101でこのパラメータが10 の場合、取得され るロールバック・セグメントの最小数は101/10 となり、11 に切り上げられます。 ロールバック・セグメントをROLLBACK_SEGMENTS パラメータに指定すると、より 多くのロールバック・セグメントを取得できます。 ----------------------------------------------------------------------
この中で記述されていることを元に、以下のことを実際に調べてみようと思う。
1.CEIL(TRANSACTIONS/TRANSACTIONS_PER_ROLLBACK_SEGMENT)の値とどのよう
に関連して、パブリック・ロールバック・セグメントが起動されるのか?
(CEIL(A)ならA以上の最小の整数)
2.TRANSACTIONS_PER_ROLLBACK_SEGMENTで指定した数だけ、各ロールバック・
セグメントで同時トランザクションを処理できるのかどうか?
1.の検証
1_1.
パブリック・ロールバック・セグメントを50個作成する。
以下は、検証生活ではお馴染み「POPSQL」のスクリプト。
-----------------------POPSQLのスクリプト-----------------------
CONNECT SYSTEM/MANAGER
LOOP (I=1; I SHOW PARAMETER TRANSACTIONS
[/jva]
<pre>
NAME TYPE VALUE
------------------------------------ ------- ----------------
transactions integer 126
transactions_per_rollback_segment integer 4
</pre>
プライベート・ロールバック・セグメントは、以下のような指定で起動されて
いる。
(rb_test1,rb_test2,rb_find50 ⇒ 3つのロールバック・セグメントを指定)
ロールバック・セグメントは、100個までonlineにできるように指定しておく。
1_3.
この状態でデータベースを再起動し、以下のSELECT文でロールバック・セグメ
ントの状態を確認する。
CEIL(TRANSACTIONS/TRANSACTIONS_PER_ROLLBACK_SEGMENT)
= CEIL(126/4)=CEIL(31.5)=32である。
これは、上記のONLINEのロールバック・セグメントの合計数と一致する。
つまり、
CEIL(TRANSACTIONS/TRANSACTIONS_PER_ROLLBACK_SEGMENT)
- 初期化パラメータROLLBACK_SEGMENTSで指定した個数
=32-3=29
ということで、29個のパブリック・ロールバック・セグメントが起動されたの
である。
最後に、パブリック・ロールバック・セグメントをdropしておこう。
(offlineにしておかないとdropできないので注意!!)
-----------------------POPSQLのスクリプト-------------------------
CONNECT SYSTEM/MANAGER
LOOP (I=1; I<=50; I++)
SQL alter rollback segment rb_pubI offline ;
SQL drop rollback segment rb_pubI ;
ENDLOOP
------------------------------------------------------------------
次回は、2.について検証する。
以上 さわやかな潮風を感じながら 茅ヶ崎にて