ORA-04031:共有メモリのバイトを割り当てることができません( ""、 ""、 ""、 "")


8

開発データベースでこのエラーを受け取っています。一部の特定のクエリで発生します(.NETアプリケーションを介した単純な挿入と削除)。データベースは1人のユーザーが使用しており、データベースの実行時間に関係なくエラーが発生します。

設定される唯一のメモリ関連のパラメータは次のとおりです:MEMORY_TARGET = 1.2G

Oracle 11.2 x64 Standard Edition One Windows Server 2008 R2

回答:


8

アプリケーションはおそらくバインド変数を使用していないため、SGAが断片化されています(バインドの代わりにリテラルを使用するSQLの複数のコピーでいっぱいになります)。

次のコマンドで共有プールをフラッシュすることで、問題を一時的に修正できます。

alter system flush shared_pool;

将来発生しないようにするための回避策があります。

カーソル共有をオンにして、データベースをバウンスします。

ALTER SYSTEM SET cursor_sharing='SIMILAR' SCOPE=BOTH;

これを修正する唯一の実際の方法は、バインド変数を使用するようにアプリケーションを書き直すことです。


「それからデータベースをバウンスする」==?「シャットダウン-スタートアップ」?
Atilla Ozgur、2012

はい、データベースのダウンをシャット&再起動
Philᵀᴹ

問題が奇妙な方法で「解決」された
spm

1
前述のように、バインド変数を使用していないアプリケーションが問題の原因である場合、それを「解決」する唯一の方法は、それらを使用するようにアプリケーションを書き直すことです。
フィロ2012

問題が再度発生した場合は、両方の解決策を試します。しかし、再起動後の最初のクエリであっても発生するため、このケースには当てはまらないと思います。
spm

2

上記の答えは少し古いです。

alter system flush shared_pool; 

すぐに問題を軽減できますが、根本的な原因には対処できません。cursor_sharingパラメータは2つの値を取ります。

FORCEまたはEXACT。EXACTでは、再利用するカーソル(SQLと実行プラン)が完全に一致する必要があります。 "FORCE"を使用すると、クエリ内のすべての値がバインド変数に変更されます。これは、アプリケーションでバインド変数を使用しない場合に非常に便利です。データベースがそれを行います。

すでにcursor_sharing = FORCEを使用している場合。次に、メモリ割り当ての調整を検討する必要があり、システムが使用するメモリパラメータに応じて、次のクエリを使用してその値をどこに設定する必要があるかを把握できます。

SGA_TARGETおよびSGA_MAX__SIZE / PGA_TARGETとPGA_MAX_SIZEが使用されている場合(これらは一致する必要があります):select * from v $ sga_target_advice; v $ pga_target_adviceから*を選択します。

これは次のようになります。私の場合、これは実稼働前のシステムであり、長くは見栄えがしません。

これはSGA_TARGET_ADVICEです。

SGA_SIZE_FACTORが1の行が現在の設定です。メモリが小さすぎるシステムでは、SGA_SIZEおよびSGA_SIZE_FACTORの増加により、ESTD_DB_TIMEおよびESTD_DB_TIME_FACTORの劇的な減少が示されます。メモリーを増やして、再度増やしてもestd_db_timeにそれほど大きな変更が加えられないようにします。

ここでの私のケースでは、現在の負荷で、大きなヒットを被ることなくSGA_TARGETのサイズを80Gに簡単に減らすことができました。ただし、57G以下に削減すると、パフォーマンスの問題がますます劇的になります。

  SGA_SIZE SGA_SIZE_FACTOR ESTD_DB_TIME ESTD_DB_TIME_FACTOR ESTD_PHYSICAL_READS ESTD_BUFFER_CACHE_SIZE ESTD_SHARED_POOL_SIZE     CON_ID
---------- --------------- ------------ ------------------- ------------------- ---------------------- --------------------- ----------
      5760           .0625       482104               .5257            50950730                  76032                 18176          0
     11520            .125       482104               .5257            50950730                  76032                 18176          0
     17280           .1875       482104               .5257            50950730                  76032                 18176          0
     23040             .25       482104               .5257            50950730                  76032                 18176          0
     28800           .3125      1560028              1.7011           174592866                   6912                 19456          0
     34560            .375      1374046              1.4983           138703172                  13824                 18176          0
     40320           .4375      1105895              1.2059            87207269                  20736                 18176          0
     46080              .5      1028769              1.1218            72319466                  27648                 17664          0
     51840           .5625      1000157              1.0906            66607889                  34560                 16896          0
     57600            .625       980623              1.0693            62628637                  41472                 16128          0
     63360           .6875       976129              1.0644            62628637                  41472                 21248          0
     69120             .75       961456              1.0484            59805967                  48384                 21248          0
     74880           .8125       945683              1.0312            56626641                  55296                 19456          0
     80640            .875       933852              1.0183            54359334                  62208                 19456          0
     86400           .9375       923765              1.0073            51867843                  71424                 16640          0
     92160               1       917070                   1            50950730                  76032                 18176          0
     97920          1.0625       910467               .9928            49534300                  82944                 17408          0
    103680           1.125       903131               .9848            47914066                  89856                 16640          0
    109440          1.1875       896528               .9776            46385545                  96768                 15872          0
    115200            1.25       891575               .9722            46385545                  96768                 21248          0
    120960          1.3125       886990               .9672            45361435                 103680                 19456          0
    126720           1.375       884331               .9643            44851928                 110592                 19456          0
    132480          1.4375       880937               .9606            44194663                 117504                 19456          0
    138240             1.5       875252               .9544            42915800                 124416                 18176          0
    144000          1.5625       870116               .9488            41901880                 131328                 17920          0
    149760           1.625       867915               .9464            41901880                 131328                 23040          0
    155520          1.6875       867181               .9456            41769408                 138240                 23040          0
    161280            1.75       866723               .9451            41769408                 138240                 28416          0
    167040          1.8125       866631                .945            41769408                 138240                 32000          0
    172800           1.875       866631                .945            41769408                 138240                 32000          0
    178560          1.9375       866631                .945            41769408                 138240                 32000          0
    184320               2       866631                .945            41769408                 145152                 32000          0

32 rows selected.

MEMORY_TARGETを使用する場合:

select * from v$memory_target_advice;

1

以前の答えに加えてALTER SESSION SET NLS_COMP=LINGUISTIC;ALTER SESSION SET NLS_SORT=GENERIC_M_CI;、何らかの理由でメモリがすぐに使い果たされることがわかりました。別のNLS_SORTを使用すると、問題が消えます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.