오라클 성능 최적화의 9가지 기본 방법에 대한 자세한 설명
Oracle 성능 최적화의 기본 방법에는 다음 단계가 포함됩니다.
) 합리적인 Oracle 성능 최적화 목표 설정
) 현재 Oracle 성능 측정 및 기록
p>
) 현재 Oracle 성능 병목 현상 확인(Oracle이 기다리는 항목 및 대기 이벤트의 구성 요소인 SQL 문)
) 추적 파일에 대기 이벤트 기록
p>
) 현재 OS 병목 현상 확인
) 최적화에 필요한 요소(애플리케이션 데이터베이스 I/O 경합 OS 등)
) 추적 변경 제어 프로세스 구현
)현재 성과를 측정하고 기록합니다
) 최적화 목표가 달성될 때까지 단계를 반복합니다
하나씩 자세히 살펴보겠습니다
p>
합리적인 Oracle 성능 최적화 목표 설정
핵심 목표 설정에서 가장 중요한 점은 목표가 정량화 가능하고 달성 가능해야 한다는 것입니다.
방법 목표는 현재의 상태를 명시해야 합니다. 성능 및 원하는 성능 설명
현재 Oracle 성능 하이라이트를 측정하고 기록합니다.
) 최대 활동 시간 동안 현재 시스템 성능 스냅샷을 얻어야 합니다.
) 핵심은 성능 문제가 발생할 때 식별하는 것입니다. 합리적인 기간 내에 정보를 수집합니다.
) 합리적인 기간 내에 스냅샷을 수집해야 하며 일반적으로 피크 기간 동안 몇 분 동안 스냅샷을 촬영합니다.
결정 현재 Oracle 성능 병목 현상을 Oracle wait 인터페이스에서 중점적으로 v$system_event v$session_event 및 v$session_wait에서 대기 이벤트를 얻은 후 성능에 영향을 미치는 개체 및 sql 문을 찾는 방법은 다음과 같습니다
) 먼저, v$system_event 보기를 사용하여 다음 쿼리를 실행하여 데이터베이스의 몇 가지 일반적인 쿼리를 봅니다.
이벤트가 ( 버퍼 사용 중 대기
db 파일 순차 읽기
db 파일 분산 읽기
대기열에 넣기
여유 버퍼 대기
래치 해제
로그 파일 병렬 쓰기
log file sync );
) 그런 다음 v$session_event 및 v$session 보기에서 아래 쿼리를 사용하여 위에 표시된 내용에 기여하는 대기를 조사합니다. 이벤트 세션
se sid s 사용자 이름 se event se total_waits se time_waited seaverage_wait 선택
from v$session s v$session_event se
여기서 s sid = se sid
및 se 이벤트는 SQL*Net%와 다릅니다
및 s 상태 = ACTIVE
및 s 사용자 이름은 null이 아닙니다.
) 다음 쿼리를 사용하여 연결을 찾으세요. 세션의 현재 대기 이벤트에 대한 이 정보는 동적입니다. 세션에서 가장 많이 기다려지는 이벤트가 무엇인지 확인하려면 이 쿼리를 여러 번 실행해야 합니다.
sw sid s 사용자 이름 sw event sw 선택 wait_time sw 상태 sw second_in_wait SEC_IN_WAIT
v$session s v$session_wait sw
여기서 s sid = sw sid p>
/p>
및 sw 이벤트는 SQL*Net%와 같지 않으며
및 s 사용자 이름은 null이 아닙니다
order by sw wait_time desc;
)세션 대기 이벤트의 세부 정보 쿼리
select sid event p text p p text p p text p
v$session_wait에서
여기서 sid는 & 및 &
및 %SQL%와 같은 이벤트
및 %rdbms%와 같은 이벤트
) P P 정보를 사용하여; 대기 이벤트 세그먼트의 상관관계를 알아냅니다.
소유자 세그먼트_이름 세그먼트 유형 테이블스페이스_이름 선택
from dba_extents
여기서 file_id = &fileid_in
p>
및 &blockid_in은 block_id 및 block_id + 블록
) 작동할 SQL 문을 가져옵니다. 세그먼트
선택 sid getsqltxt(sql_hash_value sql_address)
from v$session
where sid = &sid_in;
)getsqltxt 함수
) 지금까지 성능에 영향을 미치는 개체와 SQL 문을 찾았으며 이를 대상으로 최적화할 수 있습니다.
추적 파일에 대기 이벤트 기록
핵심 사항: 시스템에서 대기 이벤트를 추적할 때 어떤 이유로 문제가 발생하는 경우 이러한 대기 이벤트를 추적 파일에 기록할 수 있습니다. 다음과 같습니다
) 현재 세션의 경우
alter session set timed_statistics=true
alter session set max_dump_file_size=unlimited; /p>
세션 설정 이벤트 추적 이름 컨텍스트 영원히 수준 변경
) 애플리케이션을 실행하고 지정된 디렉터리에서 추적 파일을 찾습니다. by USER_DUMP_DEST
) WAIT라는 단어로 시작하는 파일 보기 모든 줄
V$SESSION에서 S 사용자 이름 P Spid 선택 S V$PROCESS P
여기서 S PADDR = P ADDR 및 S 사용자 이름(예: A%)
) sysdba를 사용하여 sqlplus 실행 시작
세션 변경 set timed_statistics=true;
세션 변경 max_dump_file_size=unlimited
p>
oradebug setospid
oradebug unlimit
oradebug 이벤트 추적 이름 컨텍스트 영원히 레벨 X /* 여기서 SPID를 사용하여 추적 파일 보기
패널>관리 도구>성능
) UNIX 모니터링
일반적인 도구에는 sar iostat cpustat mpstat netstat top osview 등이 포함됩니다.
Oracle 성능 최적화에 필요한 구성 요소(애플리케이션, 데이터베이스 I/O 경합, OS 등)
. 변경 제어 프로세스 추적 및 구현
. 현재 Oracle 성능 측정 및 기록 lixixinzhi/Article/program/Oracle/201311/18709