블로그 이미지
장피디
나는야 장피디님

calendar

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28        

Notice

2016.11.19 12:04 비공개내용










 

 

sqlplus / as sysdba

select username from dba_users order by 1;

select username form all_users order by 1;

 

 

create user scott2 identified by oracle default tablespace users;

grant connect, resource, dba to scott2;

 

conn scott2/oracle

show user

 

imp scott2/oracle file=scott.dmp full=y

 

 

sqlplus scott2/oracle

select * from tab;

 

show parameter block;

 

show pagesize (한페이지에 표시할 수 있는라인 수)

show linesize (한 라인의 폭은 라이당 들어갈 수 있는 글자 수)

 

set pagesize 200;

set linesize 300;

 

- autotrace 사용 시

1. set autot on => 실행 결과, 실행계획, 통계 모두보임

2. set autot on exp => 실행결과, 실행 계획만 보임

3. set autot on stat => 실행결과, 통계 정보만 보임

4. set autot trace => 실행결과는 안보이고, 실행계획과 통계 정보만보임

5. set autot trace exp => 실행결과는 안보이고, 실행계획만 보임

6. set autot off => 실행계획과 통계정보 안 보임

 

- SQL*TRACE 와 TKPROF

 

alter session set tracefile_identifier='test';

alter session set sql_trace=true;

select * from emp where empno=7788;

alter session set sql_trace=false;

show parameter dump

 

라운드 트립 숫자를 확인하면 몇번 왔다갔다 하는지 확인할 수 있음.

 

 

SQL> show parameter dump

NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
background_core_dump                 string                 partial
background_dump_dest                 string                 C:\oraclexe\app\oracle\diag\rdbms\xe\xe\trace
core_dump_dest                       string                 C:\oraclexe\app\oracle\diag\rdbms\xe\xe\cdump
max_dump_file_size                   string                 unlimited
shadow_core_dump                     string                 none
user_dump_dest                       string                 C:\oraclexe\app\oracle\diag\rd
                                                            bms\xe\xe\trace

 

xe_ora_7828_test.trc

 

{SID}_{FILETYPE}_{PID}.{IDENTIFIED}.trc

ex) FILETYPE - ora 의 경우는 사용자가 생성한 FILETYPE

 

DIR> tkprof xe_ora_7828_test.trc 111.txt sys=no

 

 

1) 사용자가 실행한 SQL문

select * from emp where empno=7788

 

- Service Time = Cpu Time + Wait Time(Elapsed - cpu -> 해당 시간 간격이 클수록 I/O 범위가 크고 해당 부분이 튜닝 포인트);

- Cpu Time 이 Elapsed 보다 더 큰 경우가 있는데 해당부분은 Bug (sys가 계산하다가 발생한 시간으로 무시해도 됨)

 (cpu처리시간, elapsed전체처리시간, disk읽은 블록숫자,query는commit전의 읽은 블록숫자, current는commit후 읽은 블록숫자,rows읽은 row수)

call     count       cpu    elapsed       disk      query    current        rows

------- ------  -------- ---------- ---------- ---------- ----------  ----------

2) SQL문의 처리과정 중 구문분석 단계

Parse        1      0.00       0.00          0          0          0           0

3) SQL문의 처리과정 중 실행 단계

Execute      1      0.00       0.00          0          0          0           0

4) SQL문의 처리과정 중 인출 단계(fetch size 100(DB Client는), java는 10, sqldevelper는 50) 1+1(마지막으로 한번 더 확인)

Fetch        2      0.00       0.00          0          2          0           1

(많은 건수를 읽을 때는 Fetch 사이즈가 클 경우가 있음)

(네트워크가 느린 경우는 Fetch count가 있음. 해당 부분은 DB에서 튜닝할 포인트가 없음)

------- ------  -------- ---------- ---------- ---------- ----------  ----------

total        4      0.00       0.00          0          2          0           1

 

5) 데이터베이스서 처음 실행된 SQL문

Misses in library cache during parse: 1

Optimizer mode: ALL_ROWS

6) {ID} 사용자의 의해 실행된 SQL문

Parsing user id: 50  

Number of plan statistics captured: 1

 

7) SQL문의 실행 계획

Rows (1st) Rows (avg) Rows (max)  Row Source Operation

---------- ---------- ----------  ---------------------------------------------------

         1          1          1  TABLE ACCESS BY INDEX ROWID EMP (cr=2 pr=0 pw=0 time=28 us cost=1 size=38 card=1)

         1          1          1   INDEX UNIQUE SCAN PK_EMP (cr=1 pr=0 pw=0 time=19 us cost=0 size=0 card=1)(object id 21108)

 

********************************************************************************

- 속도 및 튜닝 포인트를 찾기 위한 포인트

CR : Consistent Read : 메모리에서 읽은 블록 (읽었다면 soft parse 속도가 빠르다)

PR : Physical Read : 디스크에서 읽은 블록 (읽었다면 hard parse 속도가 느리다)

 

- trace 파일 생성 위치 확인

select name, value from v$diag_info;

 

Default Trace File

C:\ORACLEXE\APP\ORACLE\diag\rdbms\xe\xe\trace\xe_ora_7828_test.trc

 

 

-> RBO는 10g부터는 공식적으로 적용하지 않음.(8i, 9i 에서 주로 사용)

show parameter block

db_file_multiblock_read_count = 128

 

-> CBO는 통계 정보는 항상 최신으로 유지해야 좋다.

- 가장 빠르게 실행되는 방법의 Cost(비용)을 계산하여 실행

- 처리방법, 처리순서, 우선순위 결정

- 비용 산출을 위해 통계정보 필수

- 항상 신뢰할만한가? -> 항상 최신으로 유지되는지는 미지수.

 

show parameter optimizer

 

SQL> show parameter optimizer

 

NAME                                 TYPE                   VALUE

------------------------------------ ---------------------- ------------------------------

optimizer_capture_sql_plan_baselines boolean                FALSE

optimizer_dynamic_sampling           integer                2

optimizer_features_enable            string                 11.2.0.2

optimizer_index_caching              integer                0

optimizer_index_cost_adj             integer                100

optimizer_mode                       string                 ALL_ROWS

optimizer_secure_view_merging        boolean                TRUE

optimizer_use_invisible_indexes      boolean                FALSE

optimizer_use_pending_statistics     boolean                FALSE

optimizer_use_sql_plan_baselines     boolean                TRUE

 

- 현재 테이블 조회

set line 100

desc all_tables

 

- 딕셔너리조회

desc dict

SQL> select table_name from dict where table_name like '%TAB%';

 

- 테이블 별 블록 볼 수 있는 쿼리

 

SQL> select table_name, blocks from dba_tables where table_name='EMP';

저작자 표시 비영리 변경 금지
신고

'비공개내용' 카테고리의 다른 글

DB 튜닝 강의 2(2016/11/26)  (1) 2016.11.26
DB 튜닝 강의 1(2016/11/19)  (1) 2016.11.19
posted by 장피디
prev 1 ... 2 3 4 5 6 7 8 9 10 ... 249 next

티스토리 툴바