-
1. 테이블스페이스의 이름과 크기를 확인한다
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. 테이블스페이스에 있는 물리적 파일의 이름과 크기를 확인합니다.
tablespace_name, file_id, file_name을 선택합니다.
round(바이트/(1024*1024),0) total_space
dba_data_files에서
tablespace_name으로 정렬;
3. 롤백 세그먼트 이름과 크기를 확인하세요.
세그먼트_이름, 테이블스페이스_이름, r.status를 선택합니다.
(initial_extent/1024) 초기Extent,(next_extent/1024) NextExtent,
max_extents, v.curext CurExtent
dba_rollback_segs r, v$rollstat v에서
r.segment_id = v.usn(+)
세그먼트_이름으로 주문;
4. 컨트롤 파일 보기
v$controlfile에서 이름을 선택하십시오.
5. 로그 파일 보기
v$logfile에서 멤버를 선택합니다.
6. 테이블스페이스 사용량 확인
free_space,tablespace_name으로 합계(바이트)/(1024*1024)를 선택합니다.
dba_free_space에서
tablespace_name별로 그룹화;
A.TABLESPACE_NAME, A.BYTES 총계, B.사용된 바이트, C.BYTES 무료,
(B.BYTES*100)/A.BYTES "% 사용됨",(C.BYTES*100)/A.BYTES "% 무료"
SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C에서
여기서 A.TABLESPACE_NAME=B.TABLESPACE_NAME 및 A.TABLESPACE_NAME=C.TABLESPACE_NAME;
7. 데이터베이스 개체 보기
소유자, object_type, 상태별로 all_objects 그룹에서 소유자, object_type, 상태, count(*) 개수#를 선택합니다.
8. 데이터베이스 버전을 확인하세요
Product_comComponent_version에서 버전을 선택하세요.
여기서 SUBSTR(PRODUCT,1,6)='오라클';
9. 데이터베이스의 생성일자 및 보관방법 확인
V$Database에서 생성됨, Log_Mode, Log_Mode를 선택합니다.
10. 오랫동안 실행된 SQL 캡처
열 사용자 이름 형식 a12
열 opname 형식 a16
열 진행 형식 a8
사용자 이름, sid, opname을 선택하고,
round(sofar*100 / totalwork,0) || 진행률은 '%',
남은 시간,sql_text
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, FREELISTS,
freelist_groups, 로깅, BUFFER_POOL, num_rows, 블록,
빈_블록, avg_space, chain_cnt, avg_row_len, 샘플_크기,
마지막_분석됨
dba_tab_partitions에서
--WHERE table_name = :tname AND table_owner = :towner
ORDER BY partition_position
12. 커밋되지 않은 트랜잭션 보기
v$locked_object에서 *를 선택합니다.
v$transaction에서 *를 선택합니다.
13. 개체가 사용되는 프로세스 찾기
선택하다
p.spid,
s.sid,
s.일련번호 serial_num,
s.사용자 이름 user_name,
a.type object_type,
s.osuser os_user_name,
a.소유자,
a.객체객체_이름,
디코드(sign(48 - 명령),
1,
to_char(command), '액션 코드 #' || to_char(command) ) 액션,
p.program oracle_process,
s. 터미널 터미널,
s.프로그램 프로그램,
s.상태 세션_상태
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. 롤백 세그먼트 보기
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. 리소스를 많이 사용하는 프로세스(최상위 세션)
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# serial_num,
nvl(s.username, '[Oracle 프로세스]') user_name, s.terminal 터미널,
s.program 프로그램, v$sesstat st, v$session s, v$process p의 st.value 기준_값
여기서 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. 잠금 상태를 확인하세요
/*+ 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# serial_num, 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 여기서 s.sid = l.sid ) ls 여기서 o.object_id = ls.id1 및 o.owner
<> o.owner, o.object_name의 'SYS' 순서
17. 대기 상태를 확인하세요
SELECT v$waitstat.class, v$waitstat.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 상황 확인
SYS.V_$SGASTAT에서 이름, 바이트 선택 이름 ASC별 순서
19. 잡힌 개체 보기
SELECT 소유자, 이름, db_link, 네임스페이스,
유형, shareable_mem, 로드, 실행,
잠금, 핀, v$db_object_cache에서 보관됨
20. V$SQLAREA 보기
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,
V$SQLAREA에서 BUFFER_GETS, ROWS_PROCESSED
스물하나. 개체 범주 수 보기
디코드 선택 (o.type#,1,'INDEX' , 2,'TABLE' , 3 , 'CLUSTER' , 4, 'VIEW' , 5 ,
'SYNONYM' , 6 , 'SEQUENCE' , 'OTHER' ) object_type , count(*) 수량
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 sys.col$
스물 둘. 사용자별 개체 유형 보기
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(디코드(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$ 통합 선택 'CONSTRAINT' , sys.con$에서 개수(*)
스물셋. 연결 관련 정보
1) 어떤 사용자가 접속되어 있는지 확인
s.osuser os_user_name, decode(sign(48 - 명령), 1, to_char(명령),
'액션 코드 #' || to_char(command) ) action, p.program oracle_process,
상태 session_status, s.terminal 터미널, s.program 프로그램,
s.username user_name, s.fixed_table_sequence 활동_미터, ' 쿼리,
0 메모리, 0 max_memory, 0 cpu_usage, s.sid, s.serial# serial_num
v$session s, v$process p에서 s.paddr=p.addr 및 s.type = 'USER'
s.username, s.osuser로 주문
2) v.sid를 기준으로 해당 연결의 리소스 사용량을 확인합니다.
n.이름을 선택하고,
v.값,
n.클래스,
n.통계#
v$statname n에서,
v$sesstat v
여기서 v.sid = 71이고
v.통계# = n.통계#
n.class, n.statistic순으로 정렬#
3) sid를 기준으로 해당 연결의 실행 중인 sql을 확인합니다.
선택 /*+ PUSH_SUBQ */
명령_유형,
SQL_텍스트,
공유 가능_메모리,
persist_mem,
런타임_메모리,
종류,
버전_개수,
로드_버전,
open_versions,
사용자_개통,
처형,
사용자 실행 중,
잔뜩,
첫 번째_로드_시간,
무효화,
파싱_콜,
디스크 읽기,
버퍼_겟,
행_처리됨,
sysdate 시작_시간,
sysdate 끝_시간,
'>' || 주소 sql_address,
'N' 상태
v$sqlarea에서
여기서 주소 = (sid = 71인 v$session에서 sql_address 선택)
스물넷. 테이블스페이스 사용량 쿼리 a.tablespace_name "테이블스페이스 이름"을 선택하고,
100-round((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 선택,
합계(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 선택,
합계(f.bytes) bytes_free
dba_free_space f에서
tablespace_name별로 그룹화) b,
(라운드 선택(최대(ff.길이)*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. 테이블스페이스 조각화 정도 쿼리
tablespace_name별로 dba_free_space 그룹에서 tablespace_name,count(tablespace_name)를 선택합니다.
개수(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을 선택합니다.
ts_blocks_v에서 *를 선택하세요.
dba_free_space에서 tablespace_name,sum(bytes),max(bytes),count(block_id)를 선택하세요.
tablespace_name별로 그룹화;
26. 실행 중인 인스턴스를 확인합니다.
v$active_instances에서 *를 선택합니다.
-