一時表領域に関するチューニングメモ †◆チューニング指針 (参照URL) =============================================================== /*
共有サーバーか専用サーバーかを確認する
*/
SELECT CASE WHEN SERVER = 'SHARED' THEN '共有サーバー'
WHEN SERVER = 'DEDICATED' THEN '専用サーバー'
ELSE '?接続'
END CASE
FROM V$SESSION
WHERE USERNAME = 'DAISUKE'
/* メモリソート率を求める sorts (memory) メモリー上でソートした回数 sorts (disk) ディスク上でソートした回数 sorts (rows) ソートされた行の合計数 ※下記SQLで得られるのは,ORACLEが起動してからのメモリーソート率 ※メモリーソート率が90%以下の場合は初期化パラメータを調整 */ SELECT A.VALUE * 100 / (A.VALUE+B.VALUE) MEM_SORT_RATE FROM V$SYSSTAT A,V$SYSSTAT B WHERE A.NAME='sorts (memory)' AND B.NAME='sorts (disk)'; /* workarea_size_policy を調べる */ select value "workarea_size_policy" from V$PARAMETER where name = 'workarea_size_policy' /* 共有サーバーの場合、または workarea_size_policy が MANUAL の場合は 初期化パラメータ:SORT_AREA_SIZE を調整する */ /* 専用サーバーの場合、または workarea_size_policy が AUTO の場合は 初期化パラメータ:PGA_AGGREGATE_TARGET を調整する */ (参照) http://otn.oracle.co.jp/products/oracle9i/daily/020.html =============================================================== --------------------------------------------------------------- --------------------------------------------------------------- /* 現在使用している一時表領域の確認 */
select TEMPORARY_TABLESPACE from USER_USERS;
/* db_block_size, sort_area_size の確認 */
select name, value, value/1024 || 'k' FROM V$PARAMETER where name in ('db_block_size', 'sort_area_size');
/* 必要サイズの算出(initial)
※db_block_size + n * sort_area_size (ここではn=1とした )
*/
select sum(val) "initial_size(単位:K)" from (
select value/1024 val FROM V$PARAMETER where name = 'db_block_size'
union
select value/1024 * 1 val FROM V$PARAMETER where name = 'sort_area_size'
);
/* 必要サイズの算出(datafile)
※DBMS_SPACEパッケージを使用した方がよいかも
*/
select max(table_size)/1024 "datafile_size(単位:K)" from (
select table_name, num_rows * avg_row_len table_size from user_tables
);
/* 一時表領域の作成 */
create tablespace 一時表領域名
datafile '/xxxx/xxxxx/xxxxx/xxxxx.ora' size 算出したdatafileサイズ * 2
default storage (initial 算出したinitialサイズ next 算出したinitialサイズ pctincrease 0) temporary;
/* ユーザの一時表領域を変更する */
ALTER USER ユーザ名 TEMPORARY TABLESPACE 一時表領域名;
|