シーケンス - SVの競合
目次
シーケンスは、複数のインスタンスから使用されているキャッシュされたシーケンスを待ち
10046トレース: WAIT番号139899759861648:ナム= 'ENQ:SV -競合' ELA = 4276種類|モード= 1398145029 ID1 = 88851 ID2 = 0 OBJ#= - 1ティム= 1385221394056801 SQL>を選択し、所有者、object_nameの、DBA_OBJECTSのobject_idからOBJECT_TYPE = 88851; OWNER OBJECT_NAME OBJECT_TYPE ----------------------- ---------------------- - ---------------- SCOTT T1_SEQ SEQUENCE
キャッシュされていないシーケンスを待ち、複数のインスタンスから使用
WAIT#140557198270352:ナム= '行キャッシュロック' ELA = 1227キャッシュID = 13モード= 0要求= 5 OBJ#= - 1ティム= 1384249119100670 SQL>セレクト型、V $ ROWCACHEここキャッシュ#= 13からパラメータ; TYPE PARAMETER ----------- -------------------------------- PARENTのdc_sequences .. WAIT #140557198260504:ナム= ELA = 529 P1 = 1、P2 = 667 P3 = 1 OBJ#= 74ティム= 1384249119101498 'GC CR 2ウェイブロック' ナム= 'GC現在のブロックの2ウェイ' ELA = 687:WAIT#140557198253360 P1を= 1、P2 = 667 P3 = 33554433 OBJ#= 74ティム= 1384249119102947 SQL> SELECT SEGMENT_NAME、のsegment_type、BLOCK_ID、ブロック DBA_EXTENTS FROM のfile_id =&file_no AND(&block_value BLOCK_ID BETWEEN AND(BLOCK_ID +ブロック-1))。 file_noに値を入力します。1 block_valueに値を入力します。667個の SEGMENT_NAME SEGMENT_TYPE BLOCK_IDブロック ------------- -------------------- ------- --- ---------- 配列$ TABLE 664 8A
- 各seq.nextvalのために我々は、配列$および配列$から最も現在のブロックを取得するため、再び0.6ミリのCR要求に対して行キャッシュロック用1.2ミリと0.6ミリ秒を待っています。
- キャッシュされていないシーケンスを使用して完全な待ち時間は、各seq.nextval操作のための約2.4ミリ秒であります
- 非キャッシュのシーケンスは、キャッシュされたシーケンスのトリガーSVロックライブラリ・キャッシュ・ロックをトリガ
パフォーマンステストの結果
テストのEnv: -要約で10.000行11.2.0.4 3ノードのRAC 3ノードRACクラスタ/ 10スレッドはそれぞれ1000行挿入する テストコマンド実行時のTPS ORDER NOCACHE $ javaのUCPDemo grac4 10千-seq 46S 212でシーケンスを使用して ORDERでシーケンスを使用しますCACHE 20 $ javaのUCPDemo grac4 10千-seq 33S 297 シーケンスを使用してORDER CACHEで1000 $ javaのUCPDemo grac4 10千-seq 32S 312 $ javaのUCPDemo grac4 10千-noseq 11S 875を作成するために、プログラミング方法を使用して、
- 常に(ORDER NOCACHEよりも早く4倍程度)可能であれば、アプリケーションベースのシーケンスを使用するようにしてください
- 可能と回避ORDER NOCACHEの組み合わせであれば使用CACHE属性
- 使用頻度の高い配列ではそのキャッシュサイズ1000を使用して - 、まれに使用するためのシーケンスは、キャッシュサイズパラメータに20を使用します
NOCACHE ORDERシーケンスのサンプルのためのAWRレポート
-------------------------------------------------- - ---------------------- --------------------------- --- -------------------------- I#クラスのイベントを待ち%タイムアウトの合計(秒)平均(ミリ秒)%DB時間平均最小最大STDのDev Cntを ---- ---------- ------------------------- -------- ---- --------- ------------- ------- -------- -------- - ------- -------- -------- ---- * Concurrenc行キャッシュロック9572 0.0 38.5 368.76 82.70 38.26 35.73 42.92 4.04 3 DB CPU N / AN / A 25.39 N / A 5.69 3 9968 0.0 24.44 2.5同期ログファイルをコミット5.48 2.42 2.07 2.69 0.32 3 他の行のキャッシュ処理73768 0.0 5.78 0.1 1.30 0.08 0.03 0.17 0.08 3 クラスタGC Crはブロックビジー2896 0.0 4.37 1.5 0.98 1.66 1.28 2.37 0.61 3 クラスタGC現在のブロック6603 0.0 4.08 0.6 0.91 0.62 0.60 0.64 0.02 3 2ウェイ クラスタGC CRブロック3ウェイ2431 0.0 2.87 1.2 0.64 1.43 1.12 1.59 0.27 3 クラスタGC現在ブロック3ウェイ3223 0.0 3.44 1.1 0.77 1.08 0.94 1.32 0.20 3 4047の0.0 3.18 0.8 0.71 0.83 0.66 150 0.17 3クラスタGC CRブロック2ウェイ 他のGCSは、フラッシュ同期にログ3310 0.0 1.87 0.6 0.42 0.53 0.49 0.59 0.05 3
CACHE千ORDERシーケンスサンプルのAWRレポート
---------------------------------------- ---------- ------------ ------------------------------ -------- --------------------------- I#クラスのイベントを待ち%タイムアウトの合計(秒)平均(ミリ秒)%のDB時間平均最小最大STDのDev CNT ---- ---------- ----------------------------- ------ ------ --------- ------------- ------- -------- ------- - -------- -------- -------- *その他ENQ:SV -競合9953 0.0 19.9 197.99 80.68 21.22 7.87 28.11 11.56 3 コミット・ログ・ファイル同期10005 0.0 24.83 2.5 10.12 2.41 2.04 3.09 0.59 3 DB CPU N / AN / A 12.25 N / A 4.99 3 Configurat ENQ:HW -競合73 0.0 3.12 42.7 1.27 43.72 34.21 59.78 13.99 3 その他の信頼性のあるメッセージ5 0.0 1.79 357.3 0.73 594.44 1.67 1779.91 1026.65 3 クラスタGC現在ブロック3ウェイ250 0.0 1.58 6.3 0.64 5.18 1.91 11.56 5.52 3 Concurrencライブラリ・キャッシュ・ロック30 10.0 0.96 32.1 0.39 34.92 25.53 52.26 15.04 3 クラスタがビジー取得118 0.0 0.94 8.0 0.38 8.64 3.69 13.70 5.01 3緩衝液GC クラスタGC現在ブロック2ウェイ612 0.0 0.86 1.4 0.35 1.41 0.78 2.54 0.98 3 ビジークラスタGC現在ブロック161 0.0 0.81 5.0 0.33 4.96 3.92 5.66 0.92 3
- 配列上の各更新は、行キャッシュ・ロックを必要とする(キャッシュは、このアップデートを低減 - が、インスタンスがクラッシュした場合のギャップをもたらすことができます)
- ORDERとNOCACHE属性を使用している場合、すべてのseq.nextvalアクセスが行キャッシュのロックをトリガ
- NOCACHEシーケンス行キャッシュロックイベントを使用している場合は、主要な待機イベント可能性があり
- CACHEのENQを使用している場合:SVは - 競合が主な待機イベントとなり