Oacle 자원 조회 상용 보기

6909 단어 일반 보기
-- v $session 중 STATUS: 이 열 은 session 상 태 를 판단 하 는 데 사용 된다.
Achtive: SQL 문 구 를 실행 하고 있 습 니 다 (리 소스 를 기다 리 거나 사용 하 는 중).
Inactive: 대기 동작 (실행 할 SQL 문 구 를 기다 리 는 것)
Killed: 삭제 로 표시 됨
-- 자원 잠 금
 
select b.SESSION_ID,         b.ORACLE_USERNAME,         b.OS_USER_NAME,         b.PROCESS,         b.LOCKED_MODE,         a.owner,         a.object_name,         a.object_id,         a.object_type,         b.XIDUSN,         b.XIDSLOT,         b.XIDSQN    from all_objects a, v$locked_object b   where a.object_id = b.object_id
-- 어떤 session 이 일 으 켰 는 지 (위 에 연결) select b. username, b. sid, b. serial \ #, logontime   from v$locked_object a,v$session b   where a.session_id = b.sid order by b.logon_time;
-- 대응 프로 세 스 죽 이기 (위 에 잇 기)
실행 명령: alter system kill session '325, 55';
그 중 325 는 sid 이 고 55 는 serial \ # 이다.
-- 외부 키 조회
SELECT a.constraint_name 관계,       a.owner           외 키 소유자,       a.table_name      외부 키 시트,       c.column_name     외 키 열,       b.owner           메 인 키 소유자,       b.table_name      메 인 키 시트,       d.column_name     메 인 키 열 FROM dbaconstraints  a,      dba_constraints  b,      dba_cons_columns c,      dba_cons_columns d WHERE a.r_constraint_name = b.constraint_name       AND a.constraint_type = 'R'       AND b.table_name = 'NBZ_TMR_GROUP'       AND b.constraint_type = 'P'       AND a.r_owner = b.owner       AND a.constraint_name = c.constraint_name       AND b.constraint_name = d.constraint_name       AND a.owner = c.owner       AND a.table_name = c.table_name       AND b.owner = d.owner       AND b.table_name = d.table_name
-- sql 실행 모니터링
select b.sql_text, -- SQL 내용 a. MACHINE, -- 어느 기계 가 실행 하 는 SQL a. USERNAME, -- 어떤 사용자 가 실행 하 는 SQL a. MODULE, -- 어떤 실행 방식 c. sofar / totalwork * 100, -- 작업 이 몇% 진행 되 었 습 니까 c. elapsedseconds, -- 얼마나 걸 렸 어 요 (초) c. timeremaining -- v $session a, v $sqlarea b, v $sessionlongops c where a.sql_hash_value=b.HASH_VALUE and a.sid=c.sid and a.SERIAL#=c.SERIAL#;
select sid, v $session. username 사용자 이름, lastcall_et 지속 시간, status 상태, LOCKWAIT 대기 잠 금, 컴퓨터 사용자 컴퓨터 이름, logontime 로그 인 시작 시간, sqltext from v$session ,v$process ,v$sqlarea   where paddr=addr and sql_hash_value=hash_value    and status='ACTIVE' and v$session.username is not null   order by last_call_et desc;
1. 자원 이 가장 많이 소모 되 는 SQL 보기:
SELECT   sql_text,   sorts 정렬 횟수,  cpu_time 해석 실 행 된 cpu 시간,  elapsed_time 해석 실행 공용 시간,  hash_value,   실행 횟수,  buffer_gets 버퍼 읽 기 횟수,  disk_reads 물리 읽 기 수량,  parse_calls 해석 호출 소프트 하 드 횟수,  무효 커서 실효 횟수,  로드 로드 로드 수량,  ROWS_PROCESSED 총 열 수, -- SQL 문 구 를 해석 하여 되 돌아 오 는 총 열 수    optimizer_mode sql 의 최적화 기 모형,  optimizer_비용 조회 비용 FROM V $SQLAREA WHERE buffergets > 10000000 OR disk_reads > 1000000 ORDER BY buffer_gets + 100 * disk_reads DESC ;
2. 어떤 SQL 문장의 자원 소 모 를 봅 니 다.
SELECT hash_value, buffer_gets, disk_reads, executions, parse_calls
FROM V$SQLAREA
WHERE hash_Value = 228801498 AND address = hextoraw( 'CBD8E4B0' );
 --조회 표 가 차지 하 는 공간의 크기 (totalk 에서 나 오 는 것 은 몇 G 입 니까?)
select segment_name, total from (      select segment_name,sum(bytes)/1024/1024/1024 total from dba_segments      where /*owner not in 'SYS'*/owner = 'CGIDATA' and segment_type = 'TABLE'      group by segment_name) order by total desc;
1GB=1024MB=1024*1024KB=1024*1024*1024Byte=1024*1024*1024*8 
1     =1Byte,1   =2Byte
dba_segments    
SEGMENT_TYPE:    ,   table,index,logindex,lobsegment 。
header_file:               ,          。
header_block:                block 。
bytes:    (       ?)
blocks:       block
extents:      extent。
initial_extent:     extent  ( byte )。
next_extent:      extent  ( byte )。           。(  extent       ,     uniform  ,  extent      )
min_extents:       extent(    )。
max_extents:       extent(    )。
pct_increase:percent increase         extent             ,    extent 64K,    64K,pct_increase=50%,    extent 64K*1.5=96K,   96K*1.5=144K,    。
freelists:                  。
fresslist_groups:                  。
relative_fno:          relative fno
buffer_pool:              buffer pool 

3. 10 개의 성능 이 떨 어 지 는 sql 문 구 를 찾 습 니 다.
Sql 코드
SELECT * FROM (select PARSING_USER_ID,EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,sql_text FROM v$sqlarea   
SELECT * FROM (selection PARSING USER ID, EXECUTIONS, SORTS, COMMAND TYPE, DISK READS, sql text FROM v $sqlarea order BY disk reads DESC) where ROWNUM < 10; 설명: EXECUTIONS 는 같은 SQL 문 구 를 모두 몇 번 실 행 했 는 지 표시 하고 SORTS 는 정렬 횟수 를 표시 하 며 DISK READS 는 물리 적 으로 읽 은 수량 을 표시 합 니 다.
-- 스크롤 백 구간
select sid, v $session. username 사용자 이름, last call et 지속 시간, status 상태, LOCKWAIT 대기 잠 금, 컴퓨터 사용자 컴퓨터 이름, logon time 로그 인 시작 시간, v $session, v $process, v $sqlarea 에서 sql text  where paddr=addr and sql_hash_value=hash_value    and status='ACTIVE' and v$session.username is not null   last call et desc; -- database 공간 조회 selecta. file id "FileNo", a. tabspace name "Tabspace name" Tabspace name ", round (a. bytes / 1024 / 1024 / 1024, 4)" Total MB ", round (a. bytes - sum (b. bytes, 0))) / 1024 / 1024, 4)" Used MB ", round (sum (nvl (b. bytes, 0)) / 10224 / 1024 / 1024 / 1024 / 1024)" Free MB ", round (sum (nvl (b. bytes, 0) / a. bytes, 0) / a. bytes) / a. b. bytes, 0) / a. b바이트,)"% Free "from dba data files a, dba free space b where a. file id = b. file id (+) group by a. tablespace name, a. file id, a. bytes order by a. tablespace name -- 데이터베이스 에서 정의 문 구 를 조회 합 니 다.(배치 환경 에서 package 를 볼 수 있 는 권한 이 없습니다. 검색 표를 통 해 package 의 정 의 를 볼 수 있 습 니 다. 이 검색 을 통 해 배치 가 최신 인지 확인 할 수 있 는 기능 이 없 을 때 도 있 습 니 다) SELECT * FROM DBA SOURCE WHERE TYPE = 'PACKAGE' / * and OWNER = 'CGIDATA' * / AND NAME = 'NBZ GET NEXT TASK'  ORDER BY NAME, LINE; select OWNER,COUNT(*) from DBA_SOURCE GROUP BY OWNER; SELECT * FROM ALL_SOURCE  T; select * from user_source;  --v $sqltext, v $sql, v $sqlarea 의 차이 점 에 대해 공통점: 1) sql 내용 2) 기록 은 모두 메모리 에 있 는 sql 내용 3) 메모리 이기 때문에 역사 기록 의 차이 점 을 보류 하지 않 습 니 다. 1) 저장 할 때 까지 모두 같 지 않 습 니 다.그 중에서 v $sql 과 v $sqlarea 에 저 장 된 sql 은 모두 shared sql area 에 있 는 sql 이 고 v $sqltext 는 sga 에 있 는 sql 입 니 다.그러나 문 서 는 이 sga 에 psa (개인 sql 영역 - 공유 서버 모드 에서) 가 포함 되 어 있 는 지 명확 하 게 설명 하지 않 았 습 니 다. 2) sql 을 저장 하 는 방식 도 다 릅 니 다. v $sql 과 v $sqlarea 는 모두 한 줄 로 sql 전문 을 저장 하고 v $sqltext 는 한 줄 로 sql 의 한 줄 을 저장 합 니 다.3) v $sql 은 group by 를 포함 하 는 sql 문 구 를 저장 하지 않 습 니 다.보통 이 보 기 는 모든 조회 가 실 행 된 후에 업데이트 되 지만 오래 실 행 된 sql 에 대해 서 는 5 초 에 한 번 씩 업데이트 되 는 것 이 sql 실행 상 태 를 보 는 데 의미 가 있 습 니 다.4) 저 장 된 내 역 이 다 릅 니 다 - 이것 이 가장 기본 적 인 것 입 니 다.그리고 말 나 온 김 에 v $sqltextwith_new line 은 v $sqltext 와 마찬가지 로 전자 와 달리 줄 바 꿈 문자 와 tab 를 빈 칸 으로 바 꾸 면 쉽게 읽 을 수 있 습 니 다.V $SQLSTATS 는 V $SQL, v $sqlarea 와 마찬가지 로 CPU 를 제공 하 는 통계 가 있 습 니 다.

좋은 웹페이지 즐겨찾기