Oracle Real Application Clusterの検証 その6

<Oracle Real Application Clusterの検証 ~その6~>
ペンネーム ダーリン

— RAC環境でのチューニング —

先週までは、RAC環境においてスケーラビリティがよくない(”1″を下回るよ
うな)場合、Oracleの統計情報でどのような変化が現れているかを見てきま
した。

これまででわかったことを整理してみると、、、

今回のRAC環境では、

<>
**********************************************************
1.”enqueue”イベントで待ちが多い。
2.”buffer busy waits”イベントで待ちが多い。
3.”buffer busy global cache”イベントで待ちが多い。

4.”enqueue”の中でも、”TX”エンキュー待ちが多い。
5.”buffer busy waits”の大半は、ログ系のインデックス。
6.ログ系のインデックスでは”ITL waits”も発生している。

7.”global cache convert”に関する処理時間が長い。
8.”global lock get”に関する処理時間が長い。
**********************************************************

と、言うことがわかりました。

差し当たってのチューニングポイントとしては、
“buffer busy waits”が発生している、ログ系のインデックスに関して
「インスタンス間での競合を減らそう。」
と言う点になります。

では、テーブル構成、インデックス構成がどのようになっているかと言うと、

SQL> desc logtbl1
 名前                 NULL?    型
 -------------------- -------- ----------------------------
 INS_DATE             NOT NULL TIMESTAMP(6)
 CONNECT_ID           NOT NULL CHAR(64)
 ACTION_CD                     NUMBER(1)
 USER_ID                       CHAR(50)
 NOTE                          VARCHAR2(200)
SQL> select INDEX_NAME,TABLE_NAME,COLUMN_NAME,COLUMN_POSITION
  2  from user_ind_columns where table_name = 'LOGTBL1';

INDEX_NAME   TABLE_NAME   COLUMN_NAME  COLUMN_POSITION
------------ ------------ ------------ ---------------
IDX_LOGTBL1  LOGTBL1      INS_DATE                   1

大体、こんな感じです。
登録日(INS_DATE)のカラムにインデックスがついていますね。

さー、取り掛かりましょうか。
問題は 「インスタンス間での競合を減らそう。」でした。
どうすれば、インスタンス間での競合を減らすことが出来るでしょうか。

まずは、インデックスの基本的な動作を考えてみましょう。昇順インデック
スは、シーケンシャルな値をインサートするともっとも大きな値が含まれて
いるリーフブロックに次々とインサートされてます。
大量トランザクションが行われる環境では、かなりブロックの競合が発生し
ているはずです。この様子は、”ITL waits”で確認できます。しかし、今回
のシングルインスタンス環境においては、このブロックの競合自体は問題ない
レベルであることが確認できています。
(<Oracle Real Application Clusterの検証 ~その3~>参照のこと)

さて、このインデックスがRAC環境で、各インスタンスを飛び交わないように
する必要があるのですが、皆さん何か思いつく方法はありますか?

このときは、○○○を、△△△する方法と、□□□を、◎◎◎する方法、が
対策案としてあがりました。
で、採用した方法は・・・・ ねたは来週お話しましょう。

皆さんからのアイデアをお待ちしています。出来れば、そのアイデアを使っ
てこちらでどのくらい違いがあるか検証してみたいですね。
(出来るだけ、がんばって検証してみますので、ご意見ください。)

実は、この対応だけでも、スケーラビリティーが1.4程度まで改善しました。
統計情報でも、いくつか明らかに違いが見られたので、これについてもお話
したいとおもいます。

今週はちと短いですが、この辺で失礼します。又来週。

一年ぶりに洗車した車のはじく水玉が気持ちいい。 茅ヶ崎にて