컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - 오라클 성능 최적화의 9가지 기본 방법에 대한 자세한 설명

오라클 성능 최적화의 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>

및 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

上篇: 아시아 지형 지도 下篇: 분실하면 어떻게 호스트의 휴대전화 감시를 보조기로 바꿀 수 있습니까?
관련 내용