-
1. テーブルスペースの名前とサイズを確認します。
select t.tablespace_name,round(sum(bytes/(1024*1024)),0) ts_size
dba_tablespaces t、dba_data_files d から
ここで、t.tablespace_name = d.tablespace_name
t.tablespace_name でグループ化します。
2. 表スペース内の物理ファイルの名前とサイズを表示します。
select tablespace_name、file_id、file_name、
Round(バイト/(1024*1024),0) total_space
dba_data_files から
tablespace_name で並べ替えます。
3. ロールバックセグメント名とサイズを確認します。
select セグメント名、テーブルスペース名、r.status、
(初期エクステント/1024) 初期エクステント、(ネクストエクステント/1024) 次エクステント、
max_extents、v.curext 現在のエクステント
dba_rollback_segs r、v$rollstat v から
ここで、r.segment_id = v.usn(+)
セグメント名で並べ替えます。
4. 制御ファイルを表示する
v$controlfile から名前を選択します。
5. ログファイルを表示する
v$logfile からメンバーを選択します。
6. テーブルスペースの使用状況を確認する
sum(バイト)/(1024*1024) を free_space,tablespace_name として選択します
dba_free_space から
tablespace_name ごとにグループ化します。
SELECT A.TABLESPACE_NAME、A.BYTES TOTAL、B.BYTES used、C.BYTES FREE、
(B.BYTES*100)/A.BYTES "% 使用済み",(C.BYTES*100)/A.BYTES "% FREE"
FROM SYS.SM$TS_AVAIL A、SYS.SM$TS_USED B、SYS.SM$TS_FREE C
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME および A.TABLESPACE_NAME=C.TABLESPACE_NAME;
7. データベースオブジェクトの表示
所有者、オブジェクトタイプ、ステータス、カウント(*) カウント# を所有者、オブジェクトタイプ、ステータスごとに all_objects グループから選択します。
8. データベースのバージョンを確認する
Product_component_version からバージョンを選択してください
SUBSTR(PRODUCT,1,6)='Oracle';
9. データベースの作成日とアーカイブ方法を表示する
V$Database から Created、Log_Mode、Log_Mode を選択します。
10. 長時間実行されている SQL をキャプチャする
列ユーザー名の形式 a12
列opname形式a16
列進行フォーマットa8
ユーザー名、SID、OP名を選択し、
Round(sofar*100 / totalwork,0) || 進行状況として '%'、
残り時間、SQLテキスト
v$session_longops 、 v$sql から
ここで、残り時間 <> 0
および sql_address = アドレス
および sql_hash_value = hash_value
/
11.データシートのパラメータ情報を表示する
SELECT パーティション名、高値、高値の長さ、テーブルスペース名、
pct_free、pct_used、ini_trans、max_trans、initial_extent、
next_extent、min_extent、max_extent、pct_increase、フリーリスト、
freelist_groups、LOGGING、BUFFER_POOL、num_rows、ブロック、
empty_blocks、avg_space、chain_cnt、avg_row_len、sample_size、
last_analyzed
FROM dba_tab_partitions
--WHERE table_name = :tname AND table_owner = :towner
ORDER BY パーティション位置
12.コミットされていないトランザクションを表示する
select * from v$locked_object;
select * from v$transaction;
13.オブジェクトがどのプロセスで使用されているかを調べる
選択する
p.スピッド、
シド、
s.serial# シリアル番号、
s.username user_name、
a.type オブジェクトの種類、
s.osuser os_user_name、
オーナー、
a.オブジェクト オブジェクト名,
decode(sign(48 - コマンド),
1、
to_char(command), 'アクション コード #' to_char(command) ) アクション、
p.program oracle_process、
s.ターミナル ターミナル、
s.プログラムプログラム、
s.status session_status
v$session s、v$access a、v$process p から
ここで、s.paddr = p.addr および
s.type = 'USER' および
a.sid = s.sid および
a.object='SUBSCRIBER_ATTR'
s.username、s.osuser 順に並べる
14.ロールバックセグメントビュー
select rownum、sys.dba_rollback_segs.segment_name 名前、v$rollstat.extents
エクステント、v$rollstat.rssize Size_in_Bytes、v$rollstat.xacts XActs、
v$rollstat.gets 取得、v$rollstat.waits 待機、v$rollstat.writes 書き込み、
v$rollstat、sys.dba_rollback_segs からの sys.dba_rollback_segs.status ステータス、
v$rollname ここで、v$rollname.name(+) = sys.dba_rollback_segs.segment_name および
v$rollstat.usn (+) = v$rollname.usn 行番号順
15.リソースを消費するプロセス (トップセッション)
select s.schemaname スキーマ名、decode(sign(48 - コマンド)、1、
to_char(command), 'アクション コード #' to_char(command) ) アクション、ステータス
session_status、s.osuser os_user_name、s.sid、p.spid、s.serial# シリアル番号、
nvl(s.username, '[Oracle プロセス]') user_name, s.terminal ターミナル,
s.program プログラム、v$sesstat st からの st.value criteria_value、v$session s、v$process p
ここで、st.sid = s.sid および st.statistic# = to_number('38') および ('ALL' = 'ALL'
または s.status = 'ALL') および p.addr = s.paddr は st.value desc、p.spid asc、s.username asc、s.osuser asc で並べ替えます。
16.ロック状態を確認する
select /*+ RULE */ ls.osuser os_user_name, ls.username user_name,
decode(ls.type, 'RW', '行待機エンキュー ロック', 'TM', 'DML エンキュー ロック', 'TX',
'トランザクション エンキュー ロック'、'UL'、'ユーザー指定のロック') lock_type、
o.object_name オブジェクト、decode(ls.lmode, 1, null, 2, '行共有', 3,
'行排他'、4、'共有'、5、'行排他共有'、6、'排他'、null)
lock_mode、o.owner、ls.sid、ls.serial# シリアル番号、ls.id1、ls.id2
sys.dba_objects から o, (s.osuser、s.username、l.type、を選択)
v$session s からの l.lmode、s.sid、s.serial#、l.id1、l.id2、
v$lock l where s.sid = l.sid ) ls where o.object_id = ls.id1 および o.owner
<> o.owner、o.object_name による 'SYS' の順序
17.待機状況を確認する
SELECT v$waitstat.class、v$waitstat.count count、SUM(v$sysstat.value) sum_value
FROM v$waitstat, v$sysstat WHERE v$sysstat.name IN ('db ブロックを取得',
'一貫性のある取得') v$waitstat.class、v$waitstat.count ごとにグループ化します
18. sgaの状況を確認する
SELECT NAME, BYTES FROM SYS.V_$SGASTAT ORDER BY NAME ASC
19.キャッチしたオブジェクトを表示する
SELECT 所有者、名前、db_link、名前空間、
タイプ、sharable_mem、ロード、実行、
ロック、ピン、v$db_object_cache から保持
20. V$SQLAREA の表示
SELECT SQL_TEXT、SHARABLE_MEM、PERSISTENT_MEM、RUNTIME_MEM、SORTS、
VERSION_COUNT、LOADED_VERSIONS、OPEN_VERSIONS、USERS_OPENING、EXECUTIONS、
USERS_EXECUTING、LOADS、FIRST_LOAD_TIME、INVALIDATIONS、PARSE_CALLS、DISK_READS、
BUFFER_GETS、V$SQLAREA から ROWS_PROCESSED
21。オブジェクト カテゴリの数を表示する
デコードを選択 (o.type#,1,'INDEX' , 2,'TABLE' , 3 , 'CLUSTER' , 4, 'VIEW' , 5 ,
'SYNONYM' , 6 , 'SEQUENCE' , 'OTHER' ) object_type , count(*) 数量 from
sys.obj$ o ここで、 o.type# > 1 はデコードによってグループ化されます (o.type#,1,'INDEX' , 2,'TABLE' , 3
、 'CLUSTER' 、 4、 'VIEW' 、 5 、 'SYNONYM' 、 6 、 'SEQUENCE' 、 'OTHER' ) 共用体選択
'COLUMN' , count(*) from sys.col$ Union select 'DB LINK' , count(*) from
22。ユーザーごとにオブジェクト タイプを表示する
u.name スキーマ、sum(decode(o.type#, 1, 1, NULL)) インデックスを選択します。
sum(decode(o.type#, 2, 1, NULL)) テーブル、sum(decode(o.type#, 3, 1, NULL))
クラスター、sum(decode(o.type#, 4, 1, NULL)) ビュー、sum(decode(o.type#, 5, 1,
NULL)) 同義語、sum(decode(o.type#, 6, 1, NULL)) シーケンス、
sum(decode(o.type#, 1, NULL, 2, NULL, 3, NULL, 4, NULL, 5, NULL, 6, NULL, 1))
その他の sys.obj$ o、sys.user$ u の場合、o.type# >= 1 および u.user# =
o.owner# と u.name <> 'PUBLIC' u.name 順にグループ化
sys.link$ Union select 'CONSTRAINT' , count(*) from sys.con$
23。接続に関する関連情報
1) 接続しているユーザーを確認する
select s.osuser os_user_name, decode(sign(48 - コマンド), 1, to_char(コマンド),
'アクション コード #' || to_char(command) ) アクション、p.program oracle_process、
status session_status、s.terminal ターミナル、s.program プログラム、
s.username user_name, s.fixed_table_sequence activity_meter, ' クエリ、
0 メモリ、0 max_memory、0 cpu_usage、s.sid、s.serial# シリアル番号
v$session s、v$process p から。s.paddr=p.addr および s.type = 'USER'
s.username、s.osuser 順に並べる
2) v.sid に基づいて、対応する接続のリソース使用量を確認します。
n.nameを選択し、
v.値、
n.クラス、
n.統計#
v$statname n から、
v$sesstat v
ここで、v.sid = 71、および
v.統計# = n.統計#
n.class、n.statistic# による順序
3) SID に基づいて、対応する接続の実行中の SQL を確認します。
select /*+ PUSH_SUBQ */
コマンドの種類、
SQL_テキスト、
共有可能なメモリ、
永続メモリ、
ランタイム_メモリ、
種類、
バージョン数、
ロードされたバージョン、
open_versions、
ユーザー_開始、
処刑、
ユーザー_実行中、
負荷、
first_load_time、
無効化、
parse_calls、
ディスク読み取り数、
バッファー取得、
行処理済み、
システム日付の開始時刻、
システム日付の終了時刻、
'>' || アドレス sql_address、
「N」ステータス
v$sqlarea から
ここで、アドレス = (sid = 71 の v$session から sql_address を選択)
24。表スペースの使用状況を照会する select a.tablespace_name "表スペース名",
100 ラウンド((nvl(b.bytes_free,0)/a.bytes_alloc)*100,2) "占有率 (%)",
Round(a.bytes_alloc/1024/1024,2) "容量 (M)",
Round(nvl(b.bytes_free,0)/1024/1024,2) "フリー(M)",
Round((a.bytes_alloc-nvl(b.bytes_free,0))/1024/1024,2) "使用(M)",
最大の「最大延長セグメント(M)」、
to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') "サンプリング時間"
from (f.tablespace_name を選択,
sum(f.bytes) bytes_alloc,
sum(decode(f.autoextensible,'YES',f.maxbytes,'NO',f.bytes)) maxbytes
dba_data_files f から
tablespace_name でグループ化) a、
(f.tablespace_name を選択、
sum(f.bytes) bytes_free
dba_free_space f から
tablespace_name でグループ化) b、
(選択round(max(ff.length)*16/1024,2) 最大、
ts.name テーブルスペース名
sys.fet$ ff、sys.file$ tf、sys.ts$ ts から
ここで、ts.ts#=ff.ts#、ff.file#=tf.relfile#、および ts.ts#=tf.ts#
ts.name、tf.blocks でグループ化) c
ここで、a.tablespace_name = b.tablespace_name および a.tablespace_name = c.tablespace_name
25. テーブルスペースの断片化の度合いを問い合わせる
select tablespace_name,count(tablespace_name) from dba_free_space グループ by tablespace_name
count(tablespace_name) > 10 を持つ;
テーブルスペース名を結合して変更します。
テーブル名の変更 未使用の割り当てを解除します。
ビュー ts_blocks_v を作成または置き換えます
dba_free_space から tablespace_name、block_id、bytes、blocks、'空き領域' セグメント名を選択します
すべてを結合する
dba_extents から tablespace_name、block_id、bytes、blocks、segment_name を選択します。
select * from ts_blocks_v;
select tablespace_name,sum(bytes),max(bytes),count(block_id) from dba_free_space
tablespace_name ごとにグループ化します。
26. どのインスタンスが実行されているかを確認します。
select * from v$active_instances;
-