ロール・バックセグメントに関する検証 その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.について検証する。
以上 さわやかな潮風を感じながら 茅ヶ崎にて