ORACLE/TABLESPACE
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(ORACLE)
#contents
**表領域の記憶領域パラメータを表示 [#qe5379e2]
SELECT tablespace_name, initial_extent "INITIAL", next_e...
min_extents, max_extents, pct_increase, status
FROM dba_tablespaces;
**表領域のサイズと使用量 [#y9ba77ac]
***改良版 [#ba3e8e7a]
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
/
***出力サンプル [#jbc9dae6]
TABLESPACE_NAME 現サイズ[MB] 使用量[MB] ...
------------------------------ ------------ ---------- -...
INDX01 2 0 ...
PERF 1024 92 ...
SYSTEM 255 205 ...
TOOL01 100 0 ...
UNDO01 15240 102 ...
USER01 2 0 ...
***旧版 [#x4048cf1]
select a.TABLESPACE_NAME,
min(a.BYTES)/1024/1024 "現サイズ(MB)",
round(min(a.BYTES)/(1024*1024) - sum(b.BYTES)/
(1024*1024),2) "使用量(MB)",
round((min(a.BYTES)/(1024*1024) - sum(b.BYTES)/(1024*102...
(min(a.BYTES)/1024/1024)*100,2) "使用率(%)",
round(sum(b.BYTES)/(1024*1024),2) "空き容量(MB)"
from dba_data_files a, dba_free_space b
where a.FILE_ID = b.FILE_ID
group by a.TABLESPACE_NAME;
**表領域のサイズ [#ubf2eb1c]
SELECT tablespace_name, SUM(bytes)/(1024*1024) "SIZE[M]"
FROM dba_data_files GROUP BY tablespace_name;
**表領域の空きサイズ [#id10b6d0]
SELECT tablespace_name, trunc(SUM(bytes)/(1024*1024)) "F...
FROM dba_free_space GROUP BY tablespace_name;
**テーブルが格納されているテーブルスペースを表示 [#l80726...
select TABLE_NAME, TABLESPACE_NAME from user_tables
order by TABLESPACE_NAME
/
**テーブルが格納されているテーブルスペースを変更 [#r4a659...
alter table MY_TABLE
move tablespace MOVE_TO_TABLESPACE
/
**インデックスが格納されているテーブルスペースを変更 [#e6...
alter index MY_INDEX
rebuild tablespace MOVE_TO_TABLESPACE
/
**データファイルのサイズ [#t366eab8]
SELECT b.tablespace_name, a.file_name, a.bytes/(1024*102...
a.autoextensible, a.increment_by/(1024*1024) "INC[M]",
a.maxbytes/(1024*1024) "MAXSIZE[M]"
FROM dba_data_files a, dba_tablespaces b
WHERE a.tablespace_name=b.tablespace_name
ORDER BY 1, 2;
**テーブルスペースの作成 [#nd14d769]
create tablespace TABLESPACE_NAME add
datafile '/oracle_path/TABLESPACE_NAMExxx.dbf'
size 1024M;
**テーブルスペースの拡張 (1) ファイルの追加 [#t397e22f]
alter tablespace TABLESPACE_NAME add
datafile '/oracle_path/TABLESPACE_NAMExxx.dbf'
size 1024M;
**テーブルスペースの拡張 (2) ファイルの拡張 [#h92fd149]
alter tablespace TABLESPACE_NAME
datafile '/oracle_path/TABLESPACE_NAMExxx.dbf'
resize 2048M;
**テーブルスペースの削除 [#l5409e0f]
drop tablespace TABLESPACE_NAME;
その後 dbf ファイルを OS のコマンドで削除する。
※ とあるテーブルスペース削除のサンプルで、drop tablespace...
**テーブルスペースの削除(データがあっても強制削除) [#s93e...
drop tablespace TABLESPACE_NAME INCLUDING CONTENTS;
その後 dbf ファイルを OS のコマンドで削除する。
**実際にテーブルが占有しているディスク領域 [#lb598f73]
set line 5000
set pagesize 10000
col tablespace_name format a15
col SEGMENT_NAME format a30
select
TABLESPACE_NAME,
SEGMENT_NAME,
sum(BYTES/1024) AS SIZE_KB
from DBA_EXTENTS
where TABLESPACE_NAME = 'USERS'
group by TABLESPACE_NAME, SEGMENT_NAME
/
**表領域を構成しているエクステント数の確認 [#ke62fa7a]
SELECT SEGMENT_NAME, SEGMENT_TYPE, TABLESPACE_NAME, EXTE...
FROM DBA_SEGMENTS
WHERE TABLESPACE_NAME = 'MY_TABLE_SPACE';
これが大きくなると性能に悪影響を与える。
**表領域の断片化調査 [#z66f8757]
SELECT TABLESPACE_NAME, FILE_ID, BYTES, BLOCKS FROM DBA_...
WHERE TABLESPACE_NAME = 'MY_TABLE_SPACE'
ORDER BY BLOCK_ID;
**連続している空き領域の結合 [#u29434e9]
ALTER TABLESPACE my_table_space COALESCE;
**アンケート [#w59572b7]
#vote(参考になった[692],参考にならなかった[70])
終了行:
#navi(ORACLE)
#contents
**表領域の記憶領域パラメータを表示 [#qe5379e2]
SELECT tablespace_name, initial_extent "INITIAL", next_e...
min_extents, max_extents, pct_increase, status
FROM dba_tablespaces;
**表領域のサイズと使用量 [#y9ba77ac]
***改良版 [#ba3e8e7a]
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
/
***出力サンプル [#jbc9dae6]
TABLESPACE_NAME 現サイズ[MB] 使用量[MB] ...
------------------------------ ------------ ---------- -...
INDX01 2 0 ...
PERF 1024 92 ...
SYSTEM 255 205 ...
TOOL01 100 0 ...
UNDO01 15240 102 ...
USER01 2 0 ...
***旧版 [#x4048cf1]
select a.TABLESPACE_NAME,
min(a.BYTES)/1024/1024 "現サイズ(MB)",
round(min(a.BYTES)/(1024*1024) - sum(b.BYTES)/
(1024*1024),2) "使用量(MB)",
round((min(a.BYTES)/(1024*1024) - sum(b.BYTES)/(1024*102...
(min(a.BYTES)/1024/1024)*100,2) "使用率(%)",
round(sum(b.BYTES)/(1024*1024),2) "空き容量(MB)"
from dba_data_files a, dba_free_space b
where a.FILE_ID = b.FILE_ID
group by a.TABLESPACE_NAME;
**表領域のサイズ [#ubf2eb1c]
SELECT tablespace_name, SUM(bytes)/(1024*1024) "SIZE[M]"
FROM dba_data_files GROUP BY tablespace_name;
**表領域の空きサイズ [#id10b6d0]
SELECT tablespace_name, trunc(SUM(bytes)/(1024*1024)) "F...
FROM dba_free_space GROUP BY tablespace_name;
**テーブルが格納されているテーブルスペースを表示 [#l80726...
select TABLE_NAME, TABLESPACE_NAME from user_tables
order by TABLESPACE_NAME
/
**テーブルが格納されているテーブルスペースを変更 [#r4a659...
alter table MY_TABLE
move tablespace MOVE_TO_TABLESPACE
/
**インデックスが格納されているテーブルスペースを変更 [#e6...
alter index MY_INDEX
rebuild tablespace MOVE_TO_TABLESPACE
/
**データファイルのサイズ [#t366eab8]
SELECT b.tablespace_name, a.file_name, a.bytes/(1024*102...
a.autoextensible, a.increment_by/(1024*1024) "INC[M]",
a.maxbytes/(1024*1024) "MAXSIZE[M]"
FROM dba_data_files a, dba_tablespaces b
WHERE a.tablespace_name=b.tablespace_name
ORDER BY 1, 2;
**テーブルスペースの作成 [#nd14d769]
create tablespace TABLESPACE_NAME add
datafile '/oracle_path/TABLESPACE_NAMExxx.dbf'
size 1024M;
**テーブルスペースの拡張 (1) ファイルの追加 [#t397e22f]
alter tablespace TABLESPACE_NAME add
datafile '/oracle_path/TABLESPACE_NAMExxx.dbf'
size 1024M;
**テーブルスペースの拡張 (2) ファイルの拡張 [#h92fd149]
alter tablespace TABLESPACE_NAME
datafile '/oracle_path/TABLESPACE_NAMExxx.dbf'
resize 2048M;
**テーブルスペースの削除 [#l5409e0f]
drop tablespace TABLESPACE_NAME;
その後 dbf ファイルを OS のコマンドで削除する。
※ とあるテーブルスペース削除のサンプルで、drop tablespace...
**テーブルスペースの削除(データがあっても強制削除) [#s93e...
drop tablespace TABLESPACE_NAME INCLUDING CONTENTS;
その後 dbf ファイルを OS のコマンドで削除する。
**実際にテーブルが占有しているディスク領域 [#lb598f73]
set line 5000
set pagesize 10000
col tablespace_name format a15
col SEGMENT_NAME format a30
select
TABLESPACE_NAME,
SEGMENT_NAME,
sum(BYTES/1024) AS SIZE_KB
from DBA_EXTENTS
where TABLESPACE_NAME = 'USERS'
group by TABLESPACE_NAME, SEGMENT_NAME
/
**表領域を構成しているエクステント数の確認 [#ke62fa7a]
SELECT SEGMENT_NAME, SEGMENT_TYPE, TABLESPACE_NAME, EXTE...
FROM DBA_SEGMENTS
WHERE TABLESPACE_NAME = 'MY_TABLE_SPACE';
これが大きくなると性能に悪影響を与える。
**表領域の断片化調査 [#z66f8757]
SELECT TABLESPACE_NAME, FILE_ID, BYTES, BLOCKS FROM DBA_...
WHERE TABLESPACE_NAME = 'MY_TABLE_SPACE'
ORDER BY BLOCK_ID;
**連続している空き領域の結合 [#u29434e9]
ALTER TABLESPACE my_table_space COALESCE;
**アンケート [#w59572b7]
#vote(参考になった[692],参考にならなかった[70])
ページ名: