テ-ブル領域

必要容量(KB) =
X行 * ( 5バイト + LEN + Y ) 
/ ( ブロックサイズ - 90バイト ) * ( 1 - PCTFREE/100 ) * 2048/1000 (KB)

ここで

X行 テ-ブルの件数 
LEN テ-ブル1行(レコ-ド)当たりのバイト数(総バイト数)
CHARタイプはケタ数
NUMBERタイプは22バイト 
で計算する 
Y 1行当たりのカラム数(項目数)  
ブロックサイズ オラクルデ-タベ-スのブロックサイズ
AIXでは4096バイト(NTは2048バイト) 
PCTFREE(%) デ-タブロックの空領域の割合
10%とする. 


想定容量 = 想定件数 * (5+総バイト数 + カラム数)* 0.0011621(KB) 


インデックス領域

必要容量(KB) =
X行 * ( 11バイト + LEN )
/ ( ブロックサイズ-90バイト ) * ( 1 - PCTFREE/100 ) * 2048/1000 (KB)

ここで

X行 テ-ブルの件数 
LEN インデックスのバイト数 
PCTFREE(%) 前述と同じ. 


想定容量 = 想定件数 * (11+インデックス部のバイト数)* 0.0011621(KB) 


シーケンスのデータ移行

set linesize 200
set pagesize 0
set trimspool on
set heading off
set feedback off
spool /tmp/impSeq.sql
select '-- シーケンスを削除する' from dual;
select 'DROP SEQUENCE ' || SEQUENCE_NAME || ';' from USER_SEQUENCES;
select '-- シーケンスを生成する' from dual;
select 'CREATE SEQUENCE ' ||  SEQUENCE_NAME  || 
	' START WITH ' || LAST_NUMBER ||  
	' INCREMENT BY ' || INCREMENT_BY || 
	' MINVALUE ' || MIN_VALUE || 
	' MAXVALUE ' || MAX_VALUE || 
	case CYCLE_FLAG when 'Y' then ' CYCLE' else ' NOCYCLE' end || 
	' CACHE ' || CACHE_SIZE || ';' 
	from USER_SEQUENCES;
select 'quit' from dual;
spool off
quit


表領域を構成しているエクステント数の確認

SELECT SEGMENT_NAME, SEGMENT_TYPE, TABLESPACE_NAME, EXTENTS
FROM DBA_SEGMENTS
WHERE TABLESPACE_NAME = '[tablespace_name]';

表領域の断片化調査

SELECT TABLESPACE_NAME, FILE_ID, BYTES, BLOCKS FROM DBA_FREE_SPACE
WHERE TABLESPACE_NAME = '[tablespace_name]'
ORDER BY BLOCK_ID;

表領域サイズと使用量

select 
	d.tablespace_name, 
	現サイズ "現サイズ[MB]", 
	round(現サイズ-空き容量) "使用量[MB]",
	round((1 - (空き容量/現サイズ))*100) "使用率(%)",
	空き容量 "空き容量[MB]"
from
(SELECT tablespace_name, round(SUM(bytes)/(1024*1024)) "現サイズ"
FROM dba_data_files GROUP BY tablespace_name) d,
(SELECT tablespace_name, round(SUM(bytes)/(1024*1024)) "空き容量"
FROM dba_free_space GROUP BY tablespace_name) f
where d.tablespace_name=f.tablespace_name
/

表領域のサイズ

SELECT tablespace_name, SUM(bytes)/(1024*1024) "SIZE[M]" FROM dba_data_files GROUP BY tablespace_name;

表領域の空サイズ

SELECT tablespace_name, trunc(SUM(bytes)/(1024*1024)) "Free[M]" FROM dba_free_space GROUP BY tablespace_name;

実際にテーブルが占有しているディスク領域

select 
  TABLESPACE_NAME, 
  SEGMENT_NAME, 
  sum(BYTES/1024) AS SIZE_KB
from DBA_EXTENTS
where TABLESPACE_NAME = '[tablespace_name]'
group by TABLESPACE_NAME, SEGMENT_NAME
/

ユーザ追加

CREATE USER [user] IDENTIFIED BY [password] DEFAULT TABLESPACE [tablespace] TEMPORARY TABLESPACE [tmp]

ロール追加

GRANT CONNECT,EXP_FULL_DATABASE,IMP_FULL_DATABASE,RESOURCE TO [user]

ユーザ削除

DROP USER [user] CASCADE;

キャラクタセットの確認

SQL> SELECT NLS_CHARSET_NAME(NLS_CHARSET_ID('CHAR_CS')),NLS_CHARSET_NAME(NLS_CHARSET_ID('NCHAR_CS')) FROM DUAL;

NLS_CHARSET_NAME(NLS_CHA NLS_CHARSET_NAME(NLS_CHARSE
------------------------ ---------------------------
AL32UTF8		 AL16UTF16

spfileの位置

SQL> show parameter spfile;
NAME    			TYPE			VALUE
------------------- --------------- ------------------------------
spfile  			string	+DG1/***/spfile***.ora

インスタンス情報確認

SQL> select instance_name from SYS.GV_$INSTANCE;

INSTANCE_NAME
------------------------------------------------
***1
***2
最終更新:2009年08月24日 12:05