요약 보고서
요약 보고서 활용
- 스냅샷 구간의 인스턴스 정보 및 문제 발생 여부의 빠른 파악
- 문제 해결 방향 설정
요약 보고서 속성에 따른 5가지 분류
항목 | 보고서 |
---|
DB 환경 | 처음부터 Cache Size 단위 보고서 전까지 부분 |
메모리 | Cache Size, Instance Efficiency Percentages(Target 100%) |
부하 발생 | Load PROFILE |
대기 이벤트 | Top 5 Timed Events |
RAC | Global Cache Load Profile, Global Cache Efficiency Percentages(Target local + remote 100%), Global Cache and Enqueue Services - Workload Characteristics, Global Cache and Enqueue Services - messaging Statistics |
인스턴스 정보
AWR DB 보고서 내용
DB Name DB Id Instance Inst Num Release RAC Host
------------ ----------- ------------ -------- ----------- --- ------------
XSOFT 3347383166 XSOFT2 2 10.2.0.3.0 YES XSOFT1Q
의미
항목 | 의미 | 관련컬럼 |
---|
DB Name | 데이터베이스 이름 | DB_NAME |
DB ID | 데이터베이스 ID | DBID |
Instance | 인스턴스 이름 | INSTANCE_NAME |
InstNum | 인스턴스 번호 | INSTANCE_NUMBER |
Release | 오라클 버전 정보 | VERSION |
RAC | RAC 여부 확인 | PARALLEL |
Host | 인스턴스가 설치된 시스템 이름 | HOST_NAME |
설명
- INSTANCE 설명
- DBA_HIST_INSTANCE 사용하며, 종료 스냅샷 기준으로 생성됨.
- V$INSTANCE 참조
AWR 스냅샷 정보
AWR DB 보고서 내용
Snap Id Snap Time Sessions Curs/Sess
--------- ------------------- -------- ---------
Begin Snap: 90505 10-Dec-12 00:00:44 531 36.4
End Snap: 90564 11-Dec-12 05:31:37 766 38.0
Elapsed: 1,770.88 (mins)
DB Time: 58,779.94 (mins)
의미
항목 | 의미 | 관련컬럼 |
---|
Snap ID | AWR 스냅샷 번호 | A.SNAP_ID |
Snap Time | AWR 스냅샷이 수행된 시간 | A.END_INTERVAL_TIME |
Sessions | AWR 스냅샷 수행 시 세션 수 | SUM(C.VALUE) WHERE STAT_NAME = 'logons current' |
Cur/Sess | AWR 스냅샷 수행 시 세션이 사용한 평균 커서의 수 | (SUM(C.VALUE) WHERE STAT_NAME 'opened cursors current') / (SUM(C.VALUE) WHERE STAT_NAME 'logons current') |
Elapsed | AWR 스냅샷 구간의 소요시간(단위:분) | (EXTRACT(DAY FROM(A.END_INTERVAL_TIME)) * 86400) + (EXTRACT(HOUR FROM(A.END_INTERVAL_TIME)) * 3600) + (EXTRACT(MINUTE FROM(A.END_INTERVAL_TIME)) * 60) + (EXTRACT(SECOND FROM(A.END_INTERVAL_TIME)) / 60) + |
DB Time | AWR 스냅샷 구간의 데이터베이스를 사용한 총 시간(단위:분) | (SUM(B.VALUE) WHERE STAT_NAME = 'DB Time') / 1000000 / 60 |
- A : DBA_HIST_SNAPSHOT
- B : DBA_HIST_SYS_TIME_MODEL
- C : DBA_HIST_SYSSTAT
설명
- 스냅샷 구간 정보
- DBA_HIST_SNAPSHOT, DBA_HIST_SYSSTAT 사용
- V$INSTANCE 참조
- Sessions 컬럼
- logons CURRENT 항목 수치이며, 스냅샷 수행 시점의 활동 세션과 비활동 세션 모두 포함하는 전체 세션 수.
- Curs/Sess 컬럼
- opened cursors current 항목의 수치를 Sessions 컬럼의 값으로 나눈 값으로, 세션 평균당 오픈 커서 수
Cache Size
AWR DB 보고서 내용
~~~~~~~~~~~ Begin End
---------- ----------
Buffer Cache: 7,008M 7,008M Std Block Size: 8K
Shared Pool Size: 6,016M 6,016M Log Buffer: 30,724K
의미
항목 | 의미 | 관련컬럼 |
---|
Buffer Cache | 버퍼 캐시 크기 | A.VALUE WHERE PARAMETER_NAME = '_db_cache_size' |
Shared Pool | 공유 풀 크기 | A.VALUE WHERE PARAMETER_NAME = '_shared_pool_size' |
Std Block Size | DB_bloCK_SIZE 초기화 파라미터로 설정한 기본 데이터 블록 크기 | A.VALUE WHERE PARAMETER_NAME = 'db_block_size' |
Log Buffer | 리두 로그 버퍼 크기 | ROUND(B.bytes / 1024, 0) WHERE NAME = 'log_buffer' |
- A : DBA_HIST_PARAMETER
- B : DBA_HIST_SGASTAT
설명
- Cache Size 구간 정보
- DBA_HIST_PARAMETER, DBA_HIST_SGASTAT 사용
Load Profile
AWR DB 보고서 내용
~~~~~~~~~~~~ Per Second Per Transaction
--------------- ---------------
Redo size: 1,809,092.59 35,459.24
Logical reads: 284,873.02 5,583.67
Block changes: 9,200.76 180.34
Physical reads: 22,719.35 445.31
Physical writes: 537.67 10.54
User calls: 494.05 9.68
Parses: 350.13 6.86
Hard parses: 5.88 0.12
Sorts: 543.75 10.66
Logons: 1.87 0.04
Executes: 7,230.94 141.73
Transactions: 51.02
% Blocks changed per Read: 3.23 Recursive Call %: 96.55
Rollback per transaction %: 23.93 Rows per Sort: 55.93
의미
항목 | 의미 | 관련컬럼 |
---|
Redo size | 발생한 리두 로그의 크기(단위 : 바이트) | redo size |
Logical reads | 메모리 읽기 I/O 발생 횟수 | session logical reads |
Block changes | SGA 메모리 블록을 변경한 횟수 | db block changes |
Physical reads | 디스크에서 메모리로 읽어온 횟수 | physical reads |
Physical writes | 메모리에서 디스크로 내려쓴 횟수 | physical writes |
User calls | 로그인, 파스, 패치, SQL 실행 등 사용자가 요청한 모든 호출의 합 | user calls |
Parses | 소프트 파스와 하드 파스가 발생한 횟수 | parse count(total) |
Hard parses | 하드 파스 횟수 | parse count(hard) |
Sorts | SQL 수행 시 디스크에 내려쓰지 않고 메모리에서만 발생한 정렬 작업 횟수 | sorts(memory) |
Logons | 스냅샷 구간 중 로그온한 총 횟수 | logons cumulative |
Executes | 사용자가 수행한 SQL과 DB 내붕서 실행된 재귀 SQL 횟수 | execute count |
Transactions | 스냅샷 구간 중 발생한 트랜잭션 횟수 | user commits + user rollbacks |
% Blocks changed per Read | 메모리 읽기 I/O당 블록 변경 비율 | 100 * (db bock changes / session logical reads) |
Rollback per transaction % | 전체 트랜잭션 횟수 중 롤백 비율 | 100 * (user rollbacks / (user commits + user rollbacks)) |
Recursive Call % | 전체 SQL 중 재귀 SQL 비율 | 100 * (recursive calls / (user calls + recursive calls)) |
Rows per Sort | 정렬 작업 시 평균 행의 수 | (sort(rows) / (sorts(memory) + sorts(disk)) |
설명
- Load Profile은 스냅샷 구간 중 DB에 발생한 부하에 대한 정보를 보여줌.
- DBA_HIST_SYSSTAT 사용
- V$SYSSTAT 참조
- Physical reads
- PGA에서 읽어온 블록의 수가 포함되며, physical reads cache와 physical reads direct 합을 초과할 수 있음
- physical reads cache : 버퍼 캐시를 거치지 않고 직접 디스크에 기록한 횟수
- physical reads direct : 버퍼 캐시의 블록을 디스크에 기록한 횟수
- Sorts
- SQL 수행 시 메모리에서만 정렬 작업이 발생한 횟수
- Transactions
- user commits 통계 수치와 user rollbacks 통계 수치의 합.
- AWR 요약보고서에서 Transactions 수치는 정확하지 않으며, 정확한 양을 확인하기 위해서는 'Undo Segment Summary > Number of Transactions' 컬럼 값을 확인해야 함.
Instance Efficency Percentages(Target 100%)
AWR DB 보고서 내용
Buffer Nowait %: 99.72 Redo NoWait %: 100.00
Buffer Hit %: 92.03 In-memory Sort %: 100.00
Library Hit %: 99.63 Soft Parse %: 98.32
Execute to Parse %: 95.16 Latch Hit %: 99.31
Parse CPU to Parse Elapsd %: 25.60 % Non-Parse CPU: 96.58
Shared Pool Statistics Begin End
------ ------
Memory Usage %: 89.98 87.52
% SQL with executions>1: 98.30 96.54
% Memory for SQL w/exec>1: 98.11 98.93
의미
항목 | 의미 | 관련컬럼 |
---|
Buffer Nowait % | 버퍼 캐시 요청 시 대기 없이 원하는 버퍼 캐시를 획득한 비율 | |
Buffer Hit % | 필요한 블록을 디스크에서 읽어 오지 않고 버퍼 캐시에서 획득한 비율. RAC 환경의 경우, 캐시 퓨전을 통해 다른 인스턴스의 메모리에서 읽어온 비율도 버퍼 캐시 적중률에 포함. | |
Library Hit % | 공유 풀의 라이브러리 캐시 적중률 | |
Execute to Parse % | 파스 없이 SQL이 수행된 비율 | |
Parse CPU to Parse Elapsd % | 파스 수행 시간 중 CPU 사용 시간 비율. 100%에 가까울수록 대기 시간 없이 파스를 수행한 것 | |
Redo NoWait % | 리두 로그 생성 시 로그 파일 공간 부족으로 로그 수위치 완료를 대기하지 않은 비율 | |
In-memory Sort % | 전체 정렬 작업 중 메모리에서만 발생한 정렬 작업 비율 | |
Soft Parse % | 소프트 파스 비율 | |
Latch Hit % | 래치 요청 시 대기 없이 획득한 비율 | |
% Non-Parse CPU | 파스에 사용된 CPU 시간을 제외한 CPU 사용 시간 비율 | |
Memory Usage % | 시작 스냅샷과 종료 스냅샷 수행 시 공유 풀 사용 비율 | |
% SQL with executions>1 | 전체 SQL 중 1회 이상 수행된 SQL 비율 | |
% Memory for SQL w/exec>1 | 전체 SQL 중 1회 이상 사용된 SQL이 차지하는 메모리 공간 비율 | |
- A : DBA_HIST_WAITSTAT
- B : DBA_HIST_LIBRARYCACHE
- C : DBA_HIST_SYSSTAT
- D : DBA_HIST_LATCH
- E : DBA_HIST_SYS_TIME_MODEL
- F : DBA_HIST_SGASTAT
- G : DBA_HIST_PARAMETERS
- H : DBA_HIST_SQL_SUMMARY
설명
- Instance Efficency Percentages(Target 100%)은 스냅샷 구간 중 메모리 사용 효율을 보여줌
- Buffer Nowait %
- 다른 세션이 읽고 있는 버퍼 블록에 읽기를 시도하는 횟수가 증가하거나, 서로 다른 세션이 호환되지 않는 락을 같은 버퍼 블록에 적용하려고 하는 횟수가 증가할 때 덜어짐.
- 대표적으로 핫 블록에 대한 요청이 높은 경우에 낮은 수치를 보임.
- Buffer Hit %
- 전체 I/O 중에서 버퍼 캐시 I/O 비율인 버퍼 캐시 적중률을 의미함.
- 정확한 캐시 적중률을 확인하기 위해서는 Buffer Pool Statistics 단위보고서의 Pool Hit% 항목을 참조해야 함.
- Library Hit %
- SQL 수행에 필요한 정보를 라이브러리 캐시 영역에서 읽은 비율을 나타냄.
- Execute to Parse %
- 소프트 파스와 하드 파스를 거치지 않고 SQL이 수행된 비율을 나타냄.
- 바인드 변수를 사용하고 라이브러리 캐시 적중률을 ㅗㅍ게 유지한다면 하드 패싱 발생을 피할 수 있음
- SESSION_CACHED_CURSORS 값을 높게 설정하면, 파스 정보를 세션의 PGA 영역에서 찾기 때문에 소프트 파스 단계도 피할 수 있음.
- Parse CPU to Parse Elapsd %
- 파스를 수행하는 시간 중에서 CPU를 사용하는 시간을 비율로 나타낸 값.
- Redo NoWait %
- 오라클에서 변경이 발생할 때 반드시 기록되어야 할 로그 버퍼에 대한 대기 여부 확인하는 값이며 99% 이상 유지 권고
- In-memory Sort %
- 정렬 작업이 수행될 때 디스크가 아닌 메모리 영역에서 정렬이 이루어진 비율이며, 90%이상 권장.
- Soft Parse %
- 전체 파스 중에서 소프트 파스 비율이며, 90% 이상 유지 권고
- Latch Hit %
- 대기 가능 모드의 래치 획득 시도 시 대기 없이 바로 획득한 비율이먀, 99% 이상 권장.
- % Non-Parse CPU
- 전체 CPU 시간에서 소요된 CPU 시간을 제외한 나머지 시간의 비율이며, 98% 이상 권장
- Memory Usage %
- 공유 풀 내에서 프리 공간을 제외한 실제 사용 중인 메모리 공간의 비율이며, 75~80% 비율 권장.
- % SQL with executions>1
- 1회만 수행된 SQL 수를 제외한 나머지 SQL의 수행 빈도를 나타내며, 하드파스 과다 수행 체크 가능. 90% 이상 유지 권장
- % Memory for SQL w/exec>1
- 1회 이상 수행된 SQL들이 사용하는 공유 풀 구간의 메모리 비율
Top 5 Timed Evvents
AWR DB 보고서 내용
Top 5 Timed Events Avg %Total
~~~~~~~~~~~~~~~~~~ wait Call
Event Waits Time (s) (ms) Time Wait Class
------------------------------ ------------ ----------- ------ ------ ----------
enq: TX - row lock contention 2,605,003 1,252,860 481 35.5 Applicatio
CPU time 801,567 22.7
db file sequential read 783,336,225 443,806 1 12.6 User I/O
gc cr multi block request 153,646,030 339,938 2 9.6 Cluster
gc buffer busy 66,222,785 186,262 3 5.3 Cluster
의미
항목 | 의미 | 관련컬럼 |
---|
Event | 대기 이벤트 이름 | EVENT_NAME |
Waits | 대기 발생 횟수 | TOTAL_WAITS |
Time (s) | 대기 발생 총 시간(단위:초) | TIME_WAITED_MICRO / 1,000,000 |
Avg Wait (ms) | 평균 대기 시간(단위 : 1/1000초) | (TIME_WAITED_MICRO / 1,000,000) / TOTAL_WAITS |
% Total Call Time | 이벤트별 대기 발생 총 시간 비율 | --- |
Wait Class | 대기 이벤트 클래스 | WAIT_CLASS |
설명
- Top 5 Timed Evvents는 오라클 DB 성능에 문제가 발생하 경우 가장 먼저 점검해야 할 보고서
- DBA_HIST_SYSTEM_EVENT 사용
- V$SYSTM_EVENT 참조
- CPU Time
- CPU 사용 시간이 문제가 되는 경우, CPU 경합으로 인해 CPU 처리 시간이 정상적인 경우보다 지연될 경우임.
- CPU 경합은 CPU 사용량과 밀접한 연관이 있는데, CPU 사용량이 증가하면 CPU 실행 대기열 길이가 길어지면서 CPU 사용 경합이 발생하며 CPU 처리 시간이 증가함.
- CPU 경합 해결 방안
- OS 튜닝 : OS 커널이나 기타 파라미터 설정, 하드웨어 설정이 잘못되어 CPU를 과도하게 사용하는 경우
- DB 튜닝 : DB 설정 및 DB 자원 사용에 있어 경합이 발생하여 CPU를 과도하게 사용하는 경우
- SQL 튜닝 : 악성 SQL이 수행되는 경우
- CPU 증설 : 위의 3가지를 조치하였음에도 불구하고, CPU 사용량이 높을 경우 CPU를 증설해야 함.
RAC Statistics
AWR DB 보고서 내용
RAC Statistics DB/Inst: XSOFT/XSOFT2 Snaps: 90505-90564
Begin End
----- -----
Number of Instances: 2 2
설명
Global Cache Load Profile
AWR DB 보고서 내용
Global Cache Load Profile
~~~~~~~~~~~~~~~~~~~~~~~~~ Per Second Per Transaction
--------------- ---------------
Global Cache blocks received: 333.44 6.54
Global Cache blocks served: 514.51 10.08
GCS/GES messages received: -32,033.90 -627.88
GCS/GES messages sent: 38,766.77 759.85
DBWR Fusion writes: 2.53 0.05
Estd Interconnect traffic (KB) 8,098.63
의미
항목 | 의미 | 관련컬럼 |
---|
Global Cache blocks received | 다른 인스턴스이 SGA에서 필요한 메모리 블록을 가지고 온 횟수 | |
Global Cache blocks served | 다른 인스턴스가 필요한 메모리 블록을 넘겨준 횟수 | |
GCS/GES messages received | GCS(Global Cache Service)와 GES(Global Enqueue Service) 메세지를 다른 인스턴스에서 받은 횟수 | |
GCS/GES messages sent | GCS와 GES 메세지를 다른 인스턴스로 넘겨준 횟수 | |
DBWR Fusion writes | RAC 환경에서 각 인스턴스에 흩어져 있는 더티 버퍼 중 최슨 더티 버퍼를 내려 쓴 횟수 | |
Estd Interconnect traffic (KB) | RAC 인스턴스간 트래픽 양(단위:KB) | |
- A : DBA_HIST_SYSSTAT
- B : DBA_HIST_DML_MISC
설명
- Global Cache Load Profile은 RAC 환경에서 인스턴스간 주고 받은 트래픽 양을 파악할 수 있음.
- 위에 나열한 딕셔너리 사용
- V$SYSSTAT 참조
Global cache Efficiency Percentages(Target local + remote 100%)
AWR DB 보고서 내용
Global Cache Efficiency Percentages (Target local+remote 100%)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Buffer access - local cache %: 91.91
Buffer access - remote cache %: 0.12
Buffer access - disk %: 7.97
의미
항목 | 의미 | 관련컬럼 |
---|
Buffer access - local cache % | 로컬 인스턴스의 버퍼 캐시 적중률 | |
Buffer access - remote cache % | 다른 인스턴스의 버퍼 캐시에서 데이터를 읽어 온 비율 | |
Buffer access - disk % | 전체 인스턴스의 버퍼 캐시에 필요한 데이터가 없어서 디스크에서 읽어온 비율 | |
설명
- Global cache Efficiency Percentages(Target local + remote 100%) 단위 보고서는 원하는 데이터를 로컬 인스턴스의 버퍼 캐시에서 찾거나 다른 인스턴스의 버퍼 캐시에서 찾은 비율
Global Cache and Enqueue Service - Workload Characteristics
AWR DB 보고서 내용
Global Cache and Enqueue Services - Workload Characteristics
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Avg global enqueue get time (ms): 11.5
Avg global cache cr block receive time (ms): 0.6
Avg global cache current block receive time (ms): 0.9
Avg global cache cr block build time (ms): 0.0
Avg global cache cr block send time (ms): 0.0
Global cache log flushes for cr blocks served %: 1.2
Avg global cache cr block flush time (ms): 2.8
Avg global cache current block pin time (ms): 0.0
Avg global cache current block send time (ms): 0.0
Global cache log flushes for current blocks served %: 0.0
Avg global cache current block flush time (ms): 1.7
의미
항목 | 의미 | 관련컬럼 |
---|
Avg global enqueue get time (ms) | 글로벌 엔큐를 획득하는 평균 속도 | |
Avg global cache cr block receive time (ms) | 다른 인스턴스에서 읽기 일관성 버퍼 캐시를 획득하는 평균 속도 | |
Avg global cache current block receive time (ms) | 다른 인스턴스에서 현재 버퍼 캐시를 획득하는 평균 속도 | |
Avg global cache cr block build time (ms) | 다른 인스턴스에서 읽기 일관성 버퍼 캐시를 전달하기 위해서 읽기 일관성 블록을 로컬 메모리에서 찾거나 생성하는 속도 | |
Avg global cache cr block send time (ms) | 다른 인스턴스에 전달하기 위한 읽기 일관성 버퍼 캐시를 IPC 레이어가지 전달한 평균 속도 | |
Global cache log flushes for cr blocks served % | 읽기 일관성 버퍼 캐시를 다른 인스턴스에 전달 시 리두 로그 내려쓰기가 필요한 비율 | |
Avg global cache cr block flush time (ms) | 읽기 일관성 버퍼 캐시를 다른 인스턴스에 전달 시 리두 로그 내려쓰기가 필여한 경우 리두 로그를 내려쓰기하는 평균 수행 속도 | |
Avg global cache current block pin time (ms) | 현재 버퍼 캐시를 다른 인스턴스로 전달하기 위해서 버퍼 캐시에 핀을 적용하는 수행 속도 | |
Avg global cache current block send time (ms) | 다른 인스턴스에 전달하기 위한 현재 버퍼 캐시를 IPC 레이어까지 전달한 평균 속도 | |
Global cache log flushes for current blocks served % | 현재 버퍼 캐시를 다른 ㅇ인스턴스에 전달 시 리두 로그 내려쓰기가 필요한 비율 | |
Avg global cache current block flush time (ms) | 현재 버퍼 캐시를 다른 인스턴스에 전달 시 리두 로그 내려쓰기가 필요한 경우 리두 로그를 내려쓰기하는 평균 수행 속도 | |
- A : DBA_HIST_SYSSTAT
- B : DBA_HIST_CR_BLOCK_SERVER
- C : DBA_HIST_CURRENT_BLOCK_SERVER
설명
- Global Cache and Enqueue Service - Workload Characteristics 단위 보고서는 RAC 트래픽 중 메모리 블록의 전송 속도를 확인할 수 있음
항목 | 권장치(ms) |
---|
Avg global enqueue get time (ms) | 30 이하 |
Avg global cache cr block send time (ms) | 10 이하 |
Avg global cache cr block receive time (ms) | 12 이하 |
Avg global cache current block send time (ms) | 23 이하 |
Avg global cache current block receive time (ms) | 30 이하 |
Global Cache and Enqueue Services - Messaging Statistics
AWR DB 보고서 내용
Global Cache and Enqueue Services - Messaging Statistics
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Avg message sent queue time (ms): 0.0
Avg message sent queue time on ksxp (ms): 0.4
Avg message received queue time (ms): 0.0
Avg GCS message process time (ms): -0.0
Avg GES message process time (ms): 0.0
% of direct sent messages: -16.27
% of indirect sent messages: 117.07
% of flow controlled messages: -0.80
의미
항목 | 의미 | 관련컬럼 |
---|
Avg message sent queue time (ms) | 메세지를 큐에 등록하고 보내기 전까지 평균 속도 | |
Avg message sent queue time on ksxp (ms) | IPC 레이어가 메세지를 받아서 ACK를 회신한 평균 속도. 오라클 권장치는 1ms 이하이다. 평균 수행 속도가 높다면 IPC 레이어에 문제가 있는지 점검해 보도록 한다. | |
Avg message received queue time (ms) | 큐에 메세지를 받아서 처리를 시작하기 전까지 평균 속도 | |
Avg GCS message process time (ms) | GCS 메세지를 처리하는 평균 속도 | |
Avg GES message process time (ms) | GES 메세지 평균 처리 시간 | |
% of direct sent messages | GCS/GES 메세지 송신 중 대기 없이 성공적으로 전달된 비율 | |
% of indirect sent messages | GCS/GES 메세지 송신 중 흐름 제어(Flow Control)가 발생하여 대기한 메세지 비율 | |
% of flow controlled messages | GCS/GES 메세지 송신 중 흐름 제어(Flow Control)가 발생한 비율 | |
설명
- Global Cache and Enqueue Services - Messaging Statistics 단위 보고서는 RAC 트래픽 중 메세지 전송에 대한 성능 수치를 보여줌.
문서에 대하여