適正な共有プールサイズを確認する

Pocket

【概要】
SHARED_POOL_SIZEには、共有プールのサイズ(バイト)を指定します。共有プールには、
共有カーソル、ストアド・プロシージャ、制御構造およびその他の構造が含まれます。
PARALLEL_AUTOMATIC_TUNINGをfalseに設定している場合、
共有プールからパラレル実行メッセージ・バッファが割り当てられます。
値を大きくするほど、マルチユーザー・システムでのパフォーマンスが改善されます。
この値を小さくすると、使用するメモリー量は減ります。
共有プールの使用率は、V$SGASTATビューを問い合せることにより監視できます。
【SQL文】
/*
|| ■適正な共有プールサイズを確認する
||
|| 【項目の説明】
|| shared_pool_size :共有プールのサイズ(バイト)
*/
set echo off
set lines 120
set pages 100

clear col
ttitle off

ttitle left ‘■■■ 共有プールサイズの確認 ■■■’
spool sharedpool_info.lis

SET SERVEROUTPUT ON;

DECLARE
sum_db_object_cache NUMBER;
sum_s_sqlarea NUMBER;
sum_u_sqlarea NUMBER;
now_parameter NUMBER;
result NUMBER;

BEGIN
SELECT SUM(sharable_mem) INTO sum_db_object_cache
FROM v$db_object_cache;
SELECT SUM(sharable_mem) INTO sum_s_sqlarea
FROM v$sqlarea;
SELECT SUM(250 * users_opening) INTO sum_u_sqlarea
FROM v$sqlarea;
result := sum_db_object_cache + sum_s_sqlarea + sum_u_sqlarea;
SELECT value INTO now_parameter
FROM v$parameter
WHERE name = ‘shared_pool_size’;
DBMS_OUTPUT.PUT_LINE(‘パラメータSHARED_POOL_SIZE->’ || now_parameter);
DBMS_OUTPUT.PUT_LINE(‘現在最低限必要なSHARED_POOL_SIZE->’ || result);
DBMS_OUTPUT.PUT_LINE(‘適正なSHARED_POOL_SIZE(×1.3)->’ || result * 1.3);
END
;
spool off
clear col
ttitle off
set line 80

以上です (^^♪