* file IO
1. System ,Nonsystem 테이블 스페이스 분리
2. users system user data(x) -> 시스템테이블스페이스에 들어가지 않게
3. table, index 분리
ex)create table xxx (a number primary key using index 절 table~
4. temporary tablespace 반드시 지정
5. RBS 필요
* redo log file IO
LGWR : DBWR_IO_SLAVES = 10 -> 여기서 프로세서를 빌려와서 쓴다.
size 대 : log switch 자주(x)
소 : log switch 자주(O)
Server
복구시간 고려
* check point
log_checkpoint_interval : 간격
log_checkpoint_timeout : 시간
Fast_start_IO_target : 다이나믹하게 interval,timeout 셋팅
DB_Block_MAX_Dirty_target : Dirty 블럭의 갯수
*Archive
<--아카이브 화일의 저장하는 곳이 많으면 IO가 많이 발생한다.
SQL> show parameter archive
NAME TYPE VALUE
------------------------------------ ------- ------------------------------
log_archive_dest string
log_archive_dest_1 string location=C:\Oracle\oradata\ORC
L\archive : 저장위치
log_archive_dest_2 string
log_archive_dest_3 string
log_archive_dest_4 string
log_archive_dest_5 string
log_archive_dest_state_1 string enable : 아카이브가 저장될때까지 기다림
defer : 로그파일에 그냥 덥어씀
(파일저장공간의 틈이생길수 있음
log_archive_dest_state_2 string enable
log_archive_dest_state_3 string enable
log_archive_dest_state_4 string enable
NAME TYPE VALUE
------------------------------------ ------- ------------------------------
log_archive_dest_state_5 string enable
log_archive_duplex_dest string
log_archive_format string %%ORACLE_SID%%T%TS%S.ARC
log_archive_max_processes integer 1 : 최대 아카이브 프로세서
log_archive_min_succeed_dest integer 1
log_archive_start boolean TRUE
log_archive_trace integer 0
standby_archive_dest string %ORACLE_HOME%\RDBMS
<-- 아카이브 파일의 경로
SQL> select DEST_ID,
2 STATUS,
3 BINDING,
4 NAME_SPACE,
5 TARGET,
6 REOPEN_SECS,
7 DESTINATION,
8 FAIL_DATE,
9 FAIL_SEQUENCE,
10 FAIL_BLOCK
11 from v$archive_dest;
DEST_ID STATUS BINDING NAME_SP TARGET REOPEN_SECS
---------- --------- --------- ------- ------- -----------
DESTINATION
-----------------------------------------------------------------
FAIL_DATE FAIL_SEQUENCE FAIL_BLOCK
--------- ------------- ----------
1 VALID OPTIONAL SYSTEM PRIMARY 0
C:\Oracle\oradata\ORCL\archive: 예정경로~
0 0
2 INACTIVE OPTIONAL SYSTEM PRIMARY 0
0 0
DEST_ID STATUS BINDING NAME_SP TARGET REOPEN_SECS
---------- --------- --------- ------- ------- -----------
DESTINATION
-----------------------------------------------------------------
FAIL_DATE FAIL_SEQUENCE FAIL_BLOCK
--------- ------------- ----------
3 INACTIVE OPTIONAL SYSTEM PRIMARY 0
0 0
4 INACTIVE OPTIONAL SYSTEM PRIMARY 0
DEST_ID STATUS BINDING NAME_SP TARGET REOPEN_SECS
---------- --------- --------- ------- ------- -----------
DESTINATION
-----------------------------------------------------------------
FAIL_DATE FAIL_SEQUENCE FAIL_BLOCK
--------- ------------- ----------
0 0
5 INACTIVE OPTIONAL SYSTEM PRIMARY 0
0 0
<-- 아카이브된 파일에 대한 정보
SQL> select recid, stamp, name, sequence#, archived, blocks
2 from v$archived_log;
RECID STAMP NAME SEQUENCE# ARC BLOCKS
---------- ---------- -------------------------------------------------- ---------- --- ----------
14 544183646 C:\ORACLE\ORADATA\ORCL\ARCHIVE\ORCLT001S00002.ARC 2 YES 9
15 544191432 C:\ORACLE\ORADATA\ORCL\ARCHIVE\ORCLT001S00003.ARC 3 YES 74
.
.
.
88 544795798 C:\ORACLE\ORADATA\ORCL\ARCHIVE\ORCLT001S00068.ARC 68 YES 2048
89 544813796 C:\ORACLE\ORADATA\ORCL\ARCHIVE\ORCLT001S00069.ARC 69 YES 613
90 544958422 C:\ORACLE\ORADATA\ORCL\ARCHIVE\ORCLT001S00070.ARC 70 YES 57
SQL> select * from v$archive_processes;
PROCESS STATUS LOG_SEQUENCE STAT
---------- ---------- ------------ ----
0 ACTIVE 0 IDLE
1 STOPPED 0 IDLE
2 STOPPED 0 IDLE
3 STOPPED 0 IDLE
4 STOPPED 0 IDLE
5 STOPPED 0 IDLE
6 STOPPED 0 IDLE
7 STOPPED 0 IDLE
8 STOPPED 0 IDLE
9 STOPPED 0 IDLE
* 블럭(BLOCK)
1. 데이타베이스 블록 구조
① 블록헤더(Header): 일반적인 Block의 정보를 가지고 있습니다.
(Block의 위치, Segment의 형태)
85~100bytes정도
② Table Directory : 클러스터에 있는 테이블에 관한 정보를 가지고 있습니다.
③ Row Directory : Block내의 Row관련 정보를 가지고 있습니다.
각 Row마다 2byte
④ Free Space : New Row Insert나 Update시 사용 합니다.
PCTFREE값과 PCTUSED에 의해 결정 됩니다.
⑤ Row Data : 테이블 데이터와 인덱스 데이터를 포함 합니다.
2. 블록 공간 활용 파라메타
- 블록 공간 활용 파라메타는 데이타와 인덱스 세그먼트의 공간 사용을 제어하는데 사용할 수 있습니다.
- INITRANS, MAXTRANS, PCTFREE, PCTUSED등이 있습니다.
◈ INITRANS
- 최소 수준의 동시성을 보장 합니다.
예를 들어 INITRANS가 3으로 설정되면 최소 세 개의 트랜잭션이 동시에 블록을 변경할 수 있습니다
- Default : 1 (TABLE), 2 (INDEX and CLUSTER)
◈ MAXTRANS
- 데이터나 인덱스 블록에 동시에 변경을 가할 수 있는 트랜잭션 수를 제한 합니다.
- MAXTRANS의 수가 너무 작을 경우, 지정된 수 이상의 transaction이 생성되면
다른 transaction이 종료되어 사용가능한 transaction entry 공간이 생길때 까지 기다립니다.
- Default : 255
◈ PCTFREE ?(인덱스블럭은 없다.)
- 블럭내에 이미 존재하고 있는 Row에 Update가 가능하도록 예약시켜 놓는 블럭의 퍼센트 값을
지정 합니다
◈ PCTUSED ? (인덱스블럭은 0값을 가진다.)
- 오라클 서버가 테이블의 각 데이터 블록에 대해 유지하려는 사용 공간의 최소 백분율로써
데이터 세그먼트에 대해 지정합니다
block 주업무 Rollback
* OLTP 적은거 MTS(멀티스래드서버) DML index필수 크기작게 갯수많게
* DW 큰거 dedicated server 긴 select full table 크기크게 갯수적게
backup 주기
* OLTP 짧다
* DW길다
[출처] < 튜닝포인트 : I/O, archive 파일, 블럭구조 확인하기|작성자 쩡동
'ORACLE' 카테고리의 다른 글
[oracle] sql 튜닝 테스트(AUTO TRACE) (0) | 2010.04.12 |
---|---|
[oracle] dump 파일 imp시 에러 발생(ftp전송후) (0) | 2010.04.12 |
(오라클) 데이터베이스 성능 진단 및 평가 (0) | 2010.04.12 |
유닉스에서 ORACLE의 자원 활용 상태 점검 방법 (0) | 2010.04.12 |
오라클(Oracle) 정기점검 항목 SQL 스크립트 (0) | 2010.04.12 |