슬라이드 1

Size: px
Start display at page:

Download "슬라이드 1"

Transcription

1 Copyrightc2013 Altibase.corp All rights reserved ALTIBASE ADVANCE

2 ALTIBASE ADVANCE CONTENTS DBMS TUNING ALTIBASE OPERATION MONITORING TOOL TECHNICAL SUPPORT

3 3 / 166 ALTIBASE ADVANCE DBMS TUNING

4 4 / 166 DBMS TUNING CONTENTS DBMS TUNING SQL TUNING SQL PLAN SQL HINT ALTIBASE SERVER TUNING TRANSACTION TUNING DBMS STATS

5 5 / 166 DBMS TUNING DBMS TUNING

6 6 / 166 DBMS TUNING DBMS 튜닝이란? DBMS의성능향상을목적으로진행하는일련의작업 어플리케이션튜닝과 SERVER 튜닝으로나뉨 DBMS 튜닝목표 DBMS call을최소화 Prepare를최소화 디스크 I/O를최소화 CPU 사용률을최소화 관점에따른튜닝종류 Design 관점 Application 관점 DBMS SERVER 관점 OS 관점

7 7 / 166 DBMS TUNING DBMS CALL 최소화 어플리케이션에서 DBMS로호출하는횟수가많은가? DBMS call을최소화하여어플리케이션의성능을향상 DBMS CALL 최소화방법 array processing 으로처리 : Array 단위 Fetch, Bulk Insert / Update / Delete Fetch call 을최소화 : 부분범위처리, ArraySize 조정

8 8 / 166 DBMS TUNING DBMS CALL 최소화예제 APRE * C/C++ struct { char char char int double price[3]; } a_goods2; JAVA gno[3][10+1]; gname[3][20+1]; goods_location[3][9+1]; stock[3]; EXEC SQL INSERT INTO GOODS VALUES (:a_goods2); 1. array processing for( ){ pstmt.addbatch(); } pstmt.executebatch(); 2. Fetch call 최소화 stmt.setfetchsize(100);

9 9 / 166 DBMS TUNING PREPARE 최소화 PREPARE 비용 단순 SQL 처리시약 70% 정도가 Prepare 비용 DBMS call을최소화하여어플리케이션의성능을향상 PREPARE 최소화방법 C/C++/APRE* 프로그램작성시 bind 변수 Java 프로그램작성시 PreparedStatement를이용 SQL Plan Cache에적재되어있는 Execution Plan을재사용 실행계획을공유하지못해 PREPARE를다시수행하는경우 공백이다르거나줄바꿈이다른경우 주석이다른경우 힌트가다른경우 조건절비교값이다른경우 대소문자가다른경우

10 10 / 166 DBMS TUNING 디스크 I/O 최소화 디스크 DBMS I/O 디스크 DBMS는한건의레코드만읽어도 page 단위로 I/O가일어남 메모리 I/O vs 디스크 I/O 전기적인신호에의한입출력 속도가빠르다 Memory I/O Disk I/O 액세스 Arm 이움직이면서헤드를통해입출력 속도가느리다 디스크 I/O 최소화방법 자주 access 되는테이블은메모리테이블로구성 필요한최소 page 만읽도록 SQL 작성 Buffer hit 율증가 Random access 감소 Sequential access 증가 Single I/O page read 와 multi I/O page read 를고려한 SQL 이 index scan/ full table scan 중유리한쪽선택

11 11 / 166 DBMS TUNING CPU 사용률최소화 메모리 DBMS는 I/O 보다는 CPU사용률이튜닝 factor SQL 1개수행동안 CPU 1EA(100%) 사용 CPU 사용률최소화방법 메모리테이블은전체건수를 SQL 하는경우라도 full table scan 보다는 index scan 이빠름 index scan 을하도록 SQL 작성

12 12 / 166 DBMS TUNING 튜닝을위한점검사항 Application 관점 TRANSACTION 증가 매번 connect - disconnect 반복 SQL 실행시빈번한 prepare 수행 full table scan 등의오래수행되는 SQL lock을잡고있는 SQL ALTIBASE 관점 체크포인트 I/O logfile writing service thread 병목 메모리 ager buffer SQL plan cache OS 관점 OS 설정 디스크 I/O 성능

13 13 / 166 DBMS TUNING ALTIBASE 튜닝도구 Explain Plan Profiling Meta 테이블 & 성능뷰 OS 유틸리티 or 명령어 (ps, top, nmon, glance)

14 DBMS TUNING ALTIBASE 튜닝도구 Explain Plan SQL의실행계획을확인하고자할때설정 isql에서 EXPLAIN PLAN을설정후확인가능 SQL 수행후출력하며, plan tree와 access 횟수등을출력 isql> ALTER SESSION SET EXPLAIN PLAN = ON; Plan tree 출력하지않음 isql> ALTER SESSION SET EXPLAIN PLAN = OFF; SQL 수행하지않고 Plan tree 만출력 isql> ALTER SESSION SET EXPLAIN PLAN =ONLY; 14 / 166

15 DBMS TUNING ALTIBASE 튜닝도구 Explain Plan 예제 EXPLAIN PLAN = ON 설정 isql> ALTER SESSION SET EXPLAIN PLAN = ON; isql> SELECT eno, ename, salary FROM employee WHERE eno=1; ENO ENAME SALARY EJJUNG 1 row selected PROJECT ( COLUMN_COUNT: 3, TUPLE_SIZE: 47 ) SCAN ( TABLE: EMPLOYEE, INDEX: SYS_C , ACCESS: 1, SELF_ID: 2 ) EXPLAIN PLAN = OFF 설정 isql> ALTER SESSION SET EXPLAIN PLAN = OFF; isql> SELECT eno, ename, salary FROM employee WHERE eno=1; ENO ENAME SALARY EJJUNG 1 row selected. 15 / 166

16 DBMS TUNING ALTIBASE 튜닝도구 Explain Plan 예제 EXPLAIN PLAN = ONLY 설정 isql> ALTER SESSION SET EXPLAIN PLAN = ONLY; isql> SELECT eno, ename, salary FROM employee WHERE eno=1; ENO ENAME SALARY No rows selected PROJECT ( COLUMN_COUNT: 3, TUPLE_SIZE: 47 ) SCAN ( TABLE: EMPLOYEE, INDEX: SYS_C , ACCESS:??, SELF_ID: 2 ) / 166

17 17 / 166 DBMS TUNING ALTIBASE 튜닝도구 Profiling 사용자가수행한 SQL 실행정보를수집하는기능 system level에서 property로설정 Profiling 된파일은 $ALTIBASE_HOME/trc 에저장됨 Profiling 으로저장되는정보 SQL를수행한 CLIENT 정보 SQL 처리의통계정보 실행시각 SQL 수행시간 인덱스정보 버퍼 / 디스크접근비용 실행계획

18 18 / 166 DBMS TUNING ALTIBASE 튜닝도구 Meta 테이블 데이터베이스객체에관한모든정보를기록하기위한시스템정의테이블 소유자는 SYSTEM_ ( 접속불가 ) DDL 수행시시스템에의해변경 성능뷰 인스턴스와성능관련정보저장 시스템메모리, 프로세스상태, 세션, 버퍼등의최신정보제공 read only

19 19 / 166 DBMS TUNING ALTIBASE 튜닝도구 OS 및 ALTIBASE 점검을위한 OS 명령어및유틸리티 AIX HPUX LINUX Solaris Performance monitor top topas nmon top glance top top System activity reporter sar sar sar sar Virtual Memory statistics vmstat vmstat vmstat vmstat I/O statistics iostat iostat iostat iostat Error log errpt dmesg dmesg emesg /var/adm/syslog

20 20 / 166 DBMS TUNING SQL TUNING

21 21 / 166 SQL TUNING SQL 처리절차 SQL PREPARE PARSING VALIDATION * syntax check * generate parse tree * semantic check * access meta table OPTIMIZATION * calculate cost/normalize * generate execution plan tree EXECUTE EXECUTION * execute execution plan tree * access table

22 22 / 166 SQL TUNING 디스크테이블과메모리테이블의 SQL 처리방법차이 Item Memory table Disk table Object identifier Pointer OID(RID) Buffer management N/A Limited buffer Join methods One-pass algorithms Multi-pass algorithms Main cost CPU Disk Index selection Minimize record access Minimize 디스크 I/O Cost factor T(R), V(R.a), etc + B(R), M T(R) : 테이블의레코드수 V(R.a) : 컬럼의 Value Cardinality B(R) : 테이블의 page 수 M : Memory Buffer 수 One- pass algorithms 가용메모리버퍼에중간결과를모두적재할수있을때사용 Multi-pass algorithms 중간결과를메모리상에모두적재할수없을때버퍼교체를최소화하기위해사용

23 SQL TUNING 인덱스 검색시성능향상을위해테이블과는별도로저장되는객체 인덱스대상컬럼값을 sorting하여저장 Memory Index 데이터베이스가구동될때마다 Memory 에생성 실제테이블의데이터에대한포인터만저장 (16 bytes) DML 시 Logging 을하지않음 Disk Index 인덱스생성시점에 Disk에생성컬럼의값과테이블의레코드주소값이저장 DML 시 Logging ALTIBASE 인덱스특징 UNIQUE, PRIMARY KEY 로지정한컬럼은내부적으로 Unique 인덱스가생성 테이블과별도의디스크에분리저장권고 Btree 인덱스와 Rtree 인덱스만지원 Rtree 인덱스는 Geometry 를위한다차원데이터처리시사용 Reverse, Bitmap, Global partitioned 인덱스등은미지원 23 / 166

24 SQL TUNING FUNCTION BASED INDEX 개념 버전부터제공 함수또는수식의결과값을기반으로생성하는인덱스 WHERE 절함수또는산술표현을자주사용시빠른검색속도보장 QUERY_REWRITE_ENABLE 1 로변경후인덱스사용가능 FUNCTION BASED INDEX 생성예제 isql> ALTER SESSION SET EXPLAIN PLAN = ON; Alter success. isql> CREATE INDEX NVL_IDX ON employee (NVL(salary, 0)); Create success. isql> SELECT eno, ename, salary FROM employee 2 WHERE (NVL(salary, 0)) < ; ENO ENAME SALARY EJJUNG 7 HJMIN JDLEE 13 KWKIM DIKIM 5 rows selected PROJECT ( COLUMN_COUNT: 3, TUPLE_SIZE: 35, COST: 0.31 ) SCAN ( TABLE: EMPLOYEE, FULL SCAN, ACCESS: 20, COST: 0.24 ) / 166

25 25 / 166 SQL TUNING FUNCTION BASED INDEX 생성예제 isql> ALTER SESSION SET QUERY_REWRITE_ENABLE = 1; Alter success. isql> SELECT eno, ename, salary FROM employee 2 WHERE (NVL(salary, 0)) < ; ENO ENAME SALARY EJJUNG 8 JDLEE 20 DIKIM 7 HJMIN KWKIM rows selected PROJECT ( COLUMN_COUNT: 3, TUPLE_SIZE: 35, COST: 0.07 ) SCAN ( TABLE: EMPLOYEE, INDEX: NVL_IDX, RANGE SCAN, ACCESS: 5, COST: 0.00 )

26 26 / 166 SQL TUNING SEQUENTIAL ACCESS 레코드간물리적인순서에따라차례대로읽어나가는방식 FULL table scan 시레코드를읽는경우 인덱스리프노드에위치한데이터들을읽는경우 RANDOM ACCESS 레코드간순서를따르지않고한건의레코드를읽기위해한 page 씩접근하여읽는방식 인덱스에저장되어있는물리적인레코드의주소를참조하여테이블의레코드를찾아가는경우 튜닝방법 sequential access 에의한선택비중증가 random access 발생량감소

27 27 / 166 SQL TUNING OPTIMIZER 최적화과정 조건절분류 ACCESS 방법결정 JOIN 순서결정 JOIN 방법결정 GROUP / AGGREGATE 연산수행방법결정 DISTINCT 절수행방법결정 SET 절수행방법결정 ORDER BY 절수행방법결정 PROJECTION 수행방법결정

28 28 / 166 SQL TUNING SQL 튜닝절차 오래수행되는 SQL 확인 explain plan 설정 set timing on 설정 실행계획확인 SQL 변경 or 인덱스설정 or 힌트등을사용하여 SQL 튜닝 SQL 튜닝방법 가능한한번만 PREPARE 효율적인인덱스사용여부확인 Driving 테이블의적합성확인 인덱스가필요하면추가 HINT 활용 부분범위처리권고 (limit 등활용 )

29 SQL TUNING SQL 튜닝한계 Modeling 단계에서성능및튜닝에대한부분이고려되지않으면 SQL 튜닝만으로성능향상기대어려움 매우큰데이터집합이리턴되거나, 거대한볼륨전체를핸들링하는업무같은경우성능향상어려움 다음의경우아키텍쳐기반튜닝필요 디스크 I/O 분산 잘못된데이터베이스스키마변경 데이터베이스 CALL 횟수최소화 네트워크부하분산 SQL PLAN CACHE 활용 29 / 166

30 30 / 166 DBMS TUNING SQL PLAN

31 SQL PLAN 실행계획이란? SQL이실행될때필요한처리절차. Optimizer에의해생성 실행계획확인 EXPLAIN PLAN 설정 ALTER SESSION SET EXPLAIN PLAN = {ON ONLY OFF} - ON : 실행계획 + 수행결과 - ONLY : 실행계획만 - OFF : 수행결과만 예 isql> ALTER SESSION SET EXPLAIN PLAN = ON; isql> SELECT eno, ename, salary FROM employee WHERE eno=1; ENO ENAME SALARY EJJUNG 1 row selected PROJECT ( COLUMN_COUNT: 3, TUPLE_SIZE: 35 ) SCAN ( TABLE: EMPLOYEE, INDEX: SYS_IDX_ID_163, ACCESS: 1, SELF_ID: 2 ) / 166

32 32 / 166 SQL PLAN 실행계획용어 PLAN 을읽는방법은가장안쪽부터, 위에서아래의순서로읽음 PLAN 용어설명 isql> SELECT /*+ USE_NL(T1, T2 ) */ T1.i1 FROM t1, t2 WHERE t1.i1=t2.i1; I No rows selected PROJECT ( COLUMN_COUNT: 1, TUPLE_SIZE: 4 ) (4) JOIN (REF_ID:2) (3) SCAN ( TABLE: T1, FULL SCAN, ACCESS: 2, SELF_ID: 1 ) (1) SCAN ( TABLE: T2, INDEX: T2_I1, ACCESS: 0, SELF_ID: 2 ) (2) [ VARIABLE KEY ] OR AND T1.I1 = T2.I1 COLUMN_COUNT = PROJECTION(select ) 되는 column 수 TUPLE_SIZE = COLUMN size 의합 ACCESS : [n] = 테이블에서 SCAN 한 RID (ROWID) 의건수를의미 PLAN NODE = SCAN, HASH, SORT, PROJ SELF_ID : plan tree 로구성됐을때의노드 ID VARIABLE KEY : key range 하는술어 SELF_ID : plan tree 로구성됐을때의노드 ID

33 33 / 166 SQL PLAN PREDICATE 를자세히보고자할경우 System level 의 property 설정 ALTER SYSTEM SET TRCLOG_DETAIL_PREDICATE=1 예제 isql> ALTER SYSTEM SET TRCLOG_DETAIL_PREDICATE=1; Alter success. isql> ALTER SESSION SET EXPLAIN PLAN = ON; Alter success. isql> SELECT e.ename, d.dname 2 FROM employee e, department d 3 WHERE e.dno = d.dno 4 AND e.ename='kskim'; ENAME DNAME KSKIM CUSTOMER SUPPORT DEPT 1 row selected PROJECT ( COLUMN_COUNT: 2, TUPLE_SIZE: 54 ) JOIN SCAN ( TABLE: EMPLOYEE E, FULL SCAN, ACCESS: 20, SELF_ID: 2 ) [ FILTER ] predicate 정보 E.ENAME = 'KSKIM' SCAN ( TABLE: DEPARTMENT D, INDEX: SYS_IDX_ID_322, ACCESS: 1, SELF_ID: 3 ) [ VARIABLE KEY ] predicate 정보 OR AND E.DNO = D.DNO

34 34 / 166 SQL PLAN WHERE 절에서조건절처리유형 Index : T1(i1, i2, i3) SQL : SELECT * FROM T1 WHERE? = 1 AND i1 > 1 AND i2 = 2 AND i4 = 'abc' AND EXISTS ( SELECT * FROM T2 WHERE T2.a1 = T1.i3 ) ; 분류 처리순서 설명 example Key Range 2 인덱스를사용하여범위검색이가능한조건 T1.i1 > 1 Key Filter 3 범위검색은안되나인덱스의키값을비교하여검사가가능한조건 T1.i2 = 1 Constant Filter 1 테이블의데이터와관계없이한번의검사만으로판단이가능한조건? = 1 Filter 4 데이터에대한직접적인비교가필요한조건 T1.i4 = abc Subquery Filter 5 Subquery를포함하고있는조건 EXISTS ()

35 35 / 166 SQL PLAN 인덱스가있더라도사용할수없는조건절 인덱스를사용할수없는연산자 WHERE enname LIKE '_K%'; WHERE enname NOT LIKE 'KIM%'; 인덱스칼럼에포함되었더라도변형을한경우 WHERE TO_CHAR(c1) = a ; WHERE SUBSTR(ename,1,4) = 'alti'; WHERE salary * 12 < ; 데이터타입이다른경우 ( 일부의데이터타입 ) WHERE start_flag = 1; (start_flag 의타입이 CHAR/VARCHAR 인경우 ) 결합인덱스일경우첫번째컬럼의인덱스를탈수있는조건이없는경우 WHERE c2 = a ; (c1, c2 순서로결합인덱스를생성한경우 ) ALTIBASE Optimizer 가 Index SCAN COST 가더소요된다고판단하였을때

36 36 / 166 SQL PLAN 비교연산자에따른인덱스사용여부 분류 비교연산자 가능여부 비고 = O!= O 단순비교 < O <= O > O >= O 범위비교 BETWEEN NOT BETWEEN O O 멤버비교 IN NOT IN O O 패턴비교 LIKE O 가능 : T1.i1 LIKE 'abc%' 불가 : T1.i1 LIKE '%abc' NOT LIKE X

37 37 / 166 SQL PLAN 분류비교연산자가능여부비고 NULL 비교존재비교 Quantify ANY Quantify ALL IS NULL O IS NOT NULL O EXISTS X NOT EXISTS X =ANY O!=ANY O <ANY O <=ANY O >ANY O >=ANY O =ALL O!= ALL O < ALL O <= ALL O > ALL O >= ALL O

38 38 / 166 CHAR VARCHAR SMALLINT INTEGER BIGINT NUMERIC FLOAT REAL DOUBLE DATE BLOB NIBBLE BYTE GEOMETRY SQL PLAN 인덱스컬럼과 VALUE 의데이터타입간호환여부 인덱스가있어도데이터타입이호환되지않으면인덱스사용불가 VALUE KEY CHAR O O X X X X X X X X VARCHAR O O X X X X X X X X SMALLINT X X O O O O O O O INTEGER X X O O O O O O O BIGINT X X O O O O O O O NUMERIC O O O O O O O O O FLOAT O O O O O O O O O REAL X X O O O O O O O DOUBLE O O O O O O O O O DATE O O O BLOB O NIBBLE O - - BYTE O - GEOMETRY O

39 39 / 166 SQL PLAN ALTIBASE 에서지원하는조인방법 Nested loops 조인계열 Sort-based 조인계열 Hash-based 조인계열

40 SQL PLAN NESTED LOOPS 조인수행방법 선행테이블에서조건에만족하는레코드검색 선행테이블의조인키값으로후행테이블조인수행 선행테이블조건에만족하는모든레코드에대해 1,2 번반복 NESTED LOOPS 조인용어 Driving 테이블, Outer 테이블 먼저 Scan 하는선행테이블 Lookup 테이블, Inner 테이블 선행테이블에서조인조건에만족하는레코드와연결하는후행테이블 Random access 로찾아감 조인컬럼에인덱스가있어야효율적 NESTED LOOPS 조인특성 Random access 위주조인방식 선행테이블조건에만족하는하나의레코드씩순차적진행 OLTP 시스템에서일차적으로고려 부분범위처리시유용 40 / 166

41 41 / 166 SQL PLAN NESTED LOOPS 조인 중첩루프와동일한방식으로동작 isql> SELECT * FROM employees e, departments d 2 WHERE e.dno = d.dno 3 AND e.emp_job = 'manager' 4 AND e.salary > ; emp_job_idx employees 1 5. enginner enginner enginner manager manager manager manager manager sales 2 6 (O) (O) (X) (O) 7 3 dept_dno_pk departments slaes sales (X)

42 42 / 166 SQL PLAN SORT MERGE 조인수행방법 outer 테이블조건에만족하는레코드를조인컬럼값으로정렬 inner 테이블조건에만족하는레코드를조인컬럼값으로정렬 outer 테이블조인컬럼값과같은레코드를 inner 테이블에서탐색하고, 다른값이나오는순간조인중지 outer 테이블다음레코드의조인컬럼값과같은레코드를 inner 테이블에서탐색하며나오는순간조인중지 SORT MERGE 조인특징 양쪽테이블에정렬이수행된후조인을수행 인덱스를통해미리정렬이되어있을경우는조인을수행하지않음 Non equi 조인일경우 Sort Merge 조인으로수행

43 43 / 166 SQL PLAN SORT MERGE 조인 Sort 단계 : 양쪽집합을조인컬럼으로정렬 Merge 단계 : 정렬된양쪽집합을병합 isql> SELECT * FROM employees e, departments d 2 WHERE e.dno = d.dno 3 AND e.emp_job = 'manager' 4 AND d.loc='seoul'; departments employees 1 Seoul 인데이터만 dno 값으로정렬 dno dname loc 20 Sales Seoul 40 Tech Seoul 50 Marketing Seoul 3 eno ename emp_job dno 2 Kim manager Lee manager Park manager 20 2 manager 인데이터만 dno 값으로정렬 X 5 Hong manager 40 9 Yun manager 40

44 44 / 166 SQL PLAN HASH-BASED 조인수행방법 선행테이블 (Build) 조건에맞는레코드의조인컬럼에 Hash function 수행한결과로 Hash map 생성 후행테이블 (Probe) 조건에맞는레코드의조인컬럼에 Hash function 수행한후 Hash map 을탐색하며조인수행 HASH-BASED 조인특징 NL 조인의 Random access와 SM 조인의정렬부담이없음 Hash function 수행및 Hash map 생성비용 조인컬럼에인덱스가없을경우수행 Equi join 에서만사용 일반적으로대용량의테이블조인시사용 Build 테이블이작아야효과적 (Hash map이디스크에생성될경우디스크 I/O 발생 )

45 SQL PLAN HASH-BASED 조인 작은테이블 (Build) 을먼저읽어 Hash map 을생성하고큰테이블 (Probe) 을읽어 Hash map 을탐색하면서조인 isql> SELECT * FROM employees e, departments d 2 WHERE e.dno = d.dno 3 AND e.emp_job = 'manager' 4 AND d.loc='seoul'; 1 departments Hash map employees Seoul 인데이터만 Search dno dname loc 20 Sales Seoul 40 Tech Seoul 50 Marketing Seoul 3 ƒ(dno) ƒ(dno) eno ename emp_job dno 2 Kim manager 10 5 Hong manager 40 9 Yun manager Lee manager 20 2 manager 인데이터만 Search Hash function 을수행하여 hash map 생성 4 Hash function을수행하여 hash map 에서같은데이터가있는지탐색 17 Park manager / 166

46 46 / 166 DBMS TUNING SQL HINT

47 47 / 166 SQL HINT HINT 개념 옵티마이저가올바른실행계획을생성할수있도록유도 HINT 를사용하는 SQL SELECT UPDATE DELTE MOVE INSERT(APPEND 힌트만사용가능 ) HINT 를사용하는방법 SELECT /*+ hint */ ~ UPDATE /*+ hint */ ~ DELETE /*+ hint */ ~ MOVE /*+ hint */ ~ INSERT /*+ hint */ ~

48 48 / 166 SQL HINT HINT 종류 힌트 PUSH_PRED( view_name ) NO_MERGE( view ) COST RULE ORDERED TEMP_TBS_MEMORY TEMP_TBS_DISK APPEND NO_PLAN_CACHE KEEP_PLAN 설명 외부의 WHERE 절의조건중뷰와관계된조인조건을뷰내부로이동하여처리 뷰가 main query 와 merge 되는것을막을때사용 비용을고려한실행계획생성 비용을배제한실행계획생성 FROM 절에나열된순서대로조인순서를결정 SQL 처리중에생성되는모든중간결과를저장하기위해메모리임시테이블을사용 SQL 처리중에생성되는모든중간결과를저장하기위해디스크임시테이블을사용 Direct-Path INSERT 가수행 생성된플랜을플랜캐시에저장하지않음 한번생성된플랜이참조하는테이블의통계정보가변경되더라도플랜이재생성되는것을방지하고그대로사용하도록함

49 49 / 166 SQL HINT HINT 종류 FULL SCAN ( table ) 힌트 INDEX ASC ( table, index, index,... ), INDEX ASC ( table index index... ) INDEX DESC ( table, index, index,... ), INDEX DESC ( table index index... ) INDEX ( table, index, index,... ), INDEX ( table index index... ) NO INDEX ( table, index, index,... ), NO INDEX ( table index index... ) USE_NL ( table, table ) USE_HASH ( table, table ) USE_SORT ( table, table ) USE_MERGE ( table, table ) NO_PUSH_SELECT_VIEW ( table ) 설명 테이블에이용가능한인덱스가존재하더라도인덱스를사용하지않고테이블전체를스캔 명시된인덱스를사용하여해당테이블에대해서인덱스스캔을수행, 오름차순으로탐색 명시된인덱스를사용하여해당테이블에대해서인덱스스캔을수행, 내림차순으로탐색 명시된인덱스를사용하여해당테이블에대해서인덱스스캔을수행 명시된인덱스를사용해서해당테이블에대한인덱스스캔을수행하지않도록 Nested loops 조인계열의조인방법을사용 Hash-based 조인계열의조인방법을사용 Sort-based 조인계열의조인방법을사용 Merge 조인조인계열의조인방법을사용 외부의 WHERE 절의조건을뷰내부로이동하여처리하지않음 PUSH_SELECT_VIEW ( table ) 외부의 WHERE 절의조건중가능한것은모두뷰내부로이동하여처리

50 50 / 166 SQL HINT FULL SCAN(TABLE) 이용가능한인덱스가있더라도테이블데이터를전체스캔하여검색 isql> SELECT /*+ FULL SCAN(tb02 ) */ DISTINCT col1 FROM tb02 2 WHERE col3 ='testing' 3 AND col1 NOT IN (1,2,3); COL rows selected PROJECT (COLUMN_COUNT: 1, TUPLE_SIZE: 4 ) DISTINCT (ITEM_SIZE:16, ITEM_COUNT:7, DISK_PAGE_COUNT:3, ACCESS:7, SELF_ID:3, REF_ID: 2 ) SCAN (TABLE: TB02, FULL SCAN, ACCESS: , DISK_PAGE_COUNT: 14272, SELF_ID: 2 ) [ FILTER ] AND COL3 = 'testing' COL1 <>ALL (1, 2, 3) 디스크테이블에대해서는거의대부분의 row 를찾는 SQL 에대해서는 full table scan 이 multi block IO 를실행하므로성능이빠를수있음

51 51 / 166 SQL HINT INDEX ASC 구문 INDEX ASC(TABLE, INDEX, INDEX, ) INDEX ASC(TABLE INDEX INDEX ) INDEX(TABLE, INDEX, INDEX, ) INDEX(TABLE INDEX INDEX ) 지정된인덱스를생성된순서대로검색 isql> SELECT /*+ INDEX ASC(tb01 tb01_idx01) */ col2 FROM tb01 2 WHERE col1=1 3 LIMIT 1; COL row selected PROJECT ( COLUMN_COUNT: 1, TUPLE_SIZE: 4 ) SCAN ( TABLE: TB01, INDEX: TB01_IDX01, ACCESS: 1, SELF_ID: 2 ) [ FIXED KEY ] AND OR COL1 = 인덱스의두번째칼럼의 min max 값을인덱스를이용해찾을때첫번째조건에해당하는모든값들에대해 min max 를계산하므로, index asc 힌트와 limit 1 절을이용하면한개의레코드만찾을수있어성능향상기대

52 52 / 166 SQL HINT INDEX DESC 구문 INDEX DESC(TABLE, INDEX, INDEX, ) INDEX DESC(TABLE INDEX INDEX ) 지정된인덱스를역순으로검색 isql> SELECT /*+ INDEX DESC(tb01 tb01_idx01) */ col2 FROM tb01 2 WHERE col1=1 3 LIMIT 1; COL row selected PROJECT ( COLUMN_COUNT: 1, TUPLE_SIZE: 4 ) SCAN ( TABLE: TB01, INDEX: TB01_IDX01, ACCESS: 1, SELF_ID: 2 ) [ FIXED KEY ] AND OR COL1 = 인덱스의두번째칼럼의 min max 값을인덱스를이용해찾을때첫번째조건에해당하는모든값들에대해 min max 를계산하므로, index desc 힌트와 limit 1 절을이용하면필요한한개의레코드만찾을수있으므로성능향상기대

53 53 / 166 SQL HINT NO INDEX 구문 NO INDEX(TABLE, INDEX, INDEX, ) NO INDEX(TABLE INDEX INDEX ) 지정된인덱스를사용하지않음 isql> SELECT /*+ NO INDEX(tb01 tb01_idx02) */ DISTINCT col3 FROM tb01 2 WHERE col1=1 3 AND col3 = 'testing'; COL testing 1 row selected PROJECT ( COLUMN_COUNT: 1, TUPLE_SIZE: 52 ) DISTINCT ( ITEM_SIZE:24, ITEM_COUNT:1, BUCKET_COUNT:1024, ACCESS:1, SELF_ID:3, REF_ID:2 ) SCAN ( TABLE: TB01, INDEX: TB01_IDX01, ACCESS: , SELF_ID: 2 ) [ FIXED KEY ] AND OR COL1 = 1 [ FILTER ] COL3 = 'testing'

54 54 / 166 SQL HINT USE_NL(TABLE, TABLE) Nested loops 조인계열의조인방법을사용 첫번째테이블을먼저스캔 isql> SELECT /*+ USE_NL(b, a) */ a.col1 FROM tb01 a, tb02 b 2 WHERE a.col2 = b.col2 3 AND a.col1 = b.col1 4 AND a.col3 ='testing' 5 AND b.col3 LIKE 'some%'; COL No rows selected PROJECT ( COLUMN_COUNT: 1, TUPLE_SIZE: 4 ) JOIN SCAN ( TABLE: TB02 B, INDEX:TB02_IDX02, ACCESS: 200, DISK_PAGE_COUNT: 14272, SELF_ID: 3 ) [ FIXED KEY ] AND OR B.COL3 LIKE 'some%' SCAN ( TABLE: TB01 A, INDEX: TB01_IDX01, ACCESS: 200, SELF_ID: 2 ) [ VARIABLE KEY ] OR AND A.COL1 = B.COL1 A.COL2 = B.COL2 [ FILTER ] A.COL3 = 'testing'

55 55 / 166 SQL HINT USE_HASH(TABLE, TABLE) Hash-based 조인방법을사용 HASH 노드의테이블을먼저스캔 isql> SELECT /*+ USE_HASH(b, a) */ a.col1 FROM tb01 a, tb02 b 2 WHERE a.col2 = b.col2 3 AND a.col1 = b.col1 4 AND a.col3 ='testing' AND b.col3 LIKE 'some%'; COL No rows selected PROJECT ( COLUMN_COUNT: 1, TUPLE_SIZE: 4 ) JOIN SCAN (TABLE: TB02 B, INDEX:TB02_IDX02, ACCESS:200, DISK_PAGE_COUNT:14272, SELF_ID:3 ) [ FIXED KEY ] AND OR B.COL3 LIKE 'some%' HASH (ITEM_SIZE:24, ITEM_COUNT:999800, BUCKET_COUNT:1024, ACCESS:0, SELF_ID:4, REF_ID:2) [ FILTER ] AND A.COL1 = B.COL1 A.COL2 = B.COL2 SCAN ( TABLE: TB01 A, INDEX: TB01_IDX02, ACCESS: , SELF_ID: 2 ) [ FIXED KEY ] AND OR A.COL3 = 'testing'

56 56 / 166 SQL HINT USE_MERGE(TABLE, TABLE) Sort Merge 조인방법을사용 SORT 노드의테이블을먼저스캔 isql> SELECT /*+ USE_MERGE(b, a) */ DISTINCT a.col1 FROM tb01 a, tb02 b 2 WHERE a.col2 > b.col2 AND a.col3 LIKE 'some AND b.col3 LIKE 'some%' 3 AND b.col1=a.col1 AND b.col1=1; col row selected PROJECT ( COLUMN_COUNT: 1, TUPLE_SIZE: 4 ) DISTINCT(ITEM_SIZE:16, ITEM_COUNT:1, DISK_PAGE_COUNT 3, ACCESS: 1, SELF_ID:6, REF_ID:2) MERGE-JOIN [ VARIABLE KEY ] B.COL1 = A.COL1 [ FILTER ] A.COL2 > B.COL2 SCAN (TABLE:TB02 B, INDEX:TB02_IDX01, ACCESS:100000, DISK_PAGE_COUNT:14272, SELF_ID:3) [ FIXED KEY ] AND OR B.COL1 = 1 [ FILTER ] B.COL3 LIKE 'some%' SORT ( ITEM_SIZE: 16, ITEM_COUNT: 200, ACCESS: 40000, SELF_ID: 4, REF_ID: 2 ) SCAN ( TABLE: TB01 A, INDEX: TB01_IDX02, ACCESS: 200, SELF_ID: 2 ) [ FIXED KEY ] AND OR A.COL3 LIKE 'some%'

57 57 / 166 SQL HINT TEMP_TBS_MEMORY SQL 처리중생성되는모든중간결과를메모리임시테이블에저장 사용시메모리증가가능 isql> SELECT * FROM tb01 ORDER BY col2; PROJECT ( COLUMN_COUNT: 4, TUPLE_SIZE: 64 ) SORT (ITEM_SIZE:72, ITEM_COUNT:10000, DISK_PAGE_COUNT:920, ACCESS:10000, SELF_ID:2, REF_ID:1) SCAN ( TABLE: TB01, FULL SCAN, ACCESS: 10000, DISK_PAGE_COUNT: 14272, SELF_ID: 1 ) isql> SELECT /*+ TEMP_TBS_MEMORY */ * FROM tb01 ORDER BY col2; PROJECT ( COLUMN_COUNT: 4, TUPLE_SIZE: 64 ) SORT ( ITEM_SIZE: 24, ITEM_COUNT: 10000, ACCESS: 10000, SELF_ID: 2, REF_ID: 1 ) SCAN ( TABLE: TB01, FULL SCAN, ACCESS: 10000, DISK_PAGE_COUNT: 14272, SELF_ID: 1 )

58 58 / 166 DBMS TUNING ALTIBASE SERVER TUNING

59 59 / 166 ALTIBASE SERVER TUNING 로그파일생성을위한 TRANSACTION 대기 prepare 된 logfile 을전부사용후신규 logfile 을추가생성할때까지 TRANSACTION 대기로인한성능저하및 CPU 사용량증가 V$LFG 의 lf_prepare_wait_count 값확인 isql> SELECT lf_prepare_wait_count FROM V$LFG; lf_prepare_wait_count 는 ALTIBASE 구동중 logfile 이미처생성되지않아 TRANSACTION 이대기했던누적횟수를나타냄 디스크속도체크 Shell> time dd if=/dev/zero of=/altibase/altibase_home/logs/alti_test_file bs=8k count= records in records out real 0m0.032s user 0m0.000s sys 0m0.033s 조치사항 PREPARE_LOG_FILE_COUNT 프로퍼티값조절 PREPARE_LOG_FILE_COUNT 은 logfile manager 쓰레드가지정한값만큼미리 logfile 생성 PREPARE_LOG_FILE_COUNT 값이클수록메모리증가

60 ALTIBASE SERVER TUNING 체크포인트발생시디스크 I/O 에대한부하로성능저하 altibase_sm.log 파일을통해체크포인트진행과정확인 체크포인트시작 [CHECKPOINT-BEGIN] 체크포인트시작 LSN 기록 [CHECKPOINT-step2] Write BeginChkpt Log [0,89, ] Active Tx Recovery LSN [0,3, ] : Disk Buffer Oldest LSN [0,3, ] : dirty page 대상지정및 TRANSACTION 로그의 sync, dirty page sync [CHECKPOINT-step3] Flush Dirty Page(s) [PRE-DirtyPageCount=0] [NEW-DirtyPageCount=33036] [DUP-DirtyPageCount=0] Begin Sync For All-LFG - Request LSN [0,3, ] Begin Bulk DB Sync (Prop.3200) [FLU-DirtyPageCount=33036] [REM-DirtyPageCount=0] PRE-DirtyPageCount: 이전에썼던 Dirty Page 수 NEW-DirtyPageCount: 새로추가된 Dirty Page 수 DUP-DirtyPageCount: New-DirtyPage 중에서 PRE-DirtyPage 와중복되는 DirtyPage 의수 Begin Sync For All-LFG - Request LSN: TRANSACTION 로그를 Sync Begin Bulk DB Sync: dirty page sync FLU-DirtyPageCount: Flush 한 Dirty Page 수 REM-DirtyPageCount: 2 벌의데이터파일에모두기록되어 Dirty Page List 에서제거된 Page 의수 60 / 166

61 ALTIBASE SERVER TUNING 체크포인트발생시디스크 I/O 에대한부하로성능저하 altibase_sm.log 파일을통해체크포인트진행과정확인 datafile sync [CHECKPOINT-step4] sync Database File 체크포인트종료 LSN 기록 [CHECKPOINT-step5] Write End_Chkpt Log [0,3, ] 체크포인트종료에대한 TRANSACTION 로그 sync [CHECKPOINT-step6] Sync Log File Begin Sync For All-LFG - Request LSN [0,89, ] 이중화로보낼 TRANSACTION 로그의 SN 확인 [CHECKPOINT-step7] Check LogFiles That Is Not Needed Replication MinSN loganchor 에체크포인트수행정보기록 [CHECKPOINT-step8] Update and Flush Log Anchor 불필요한 logfile 삭제 [CHECKPOINT-step8] Update and Flush Log Anchor 61 / 166

62 62 / 166 ALTIBASE SERVER TUNING 체크포인트발생시디스크 I/O 에대한부하로성능저하 체크포인트로그 sample(altibase_sm.log) [2011/10/05 13:51:01] [Thread ] [Level-9] [CHECKPOINT BY SYSTEM] [2011/10/05 13:51:01] [Thread ] [Level-9] [CHECKPOINT-BEGIN]... 중략 [2011/10/05 13:51:01] [Thread ] [Level-9] [CHECKPOINT-summary] BeginChkptLSN=[0,153, ], EndChkptLSN=[0,153, ], DiskRecLSN=[0,153, ] [2011/10/05 13:51:01] [Thread ] [Level-9] Minimum LSN = [0,153, ] [2011/10/05 13:51:01] [Thread ] [Level-9] [CHECKPOINT-END] 체크포인트가수행중에 [CHECKPOINT-step3] Flush Dirty Page(s) 혹은 [CHECKPO INT-step4] sync Database File 가오래수행중이라면디스크 I/O 를모니터링

63 63 / 166 ALTIBASE SERVER TUNING 디스크 I/O sar, iostat 을통해디스크 I/O 병목확인 Shell> sar :32:26 PM CPU %user %nice %system %iowait %idle 02:32:30 PM all :32:31 PM all :32:32 PM all Shell> iostat 1 avg-cpu: %user %nice %sys %iowait %idle Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sdb

64 64 / 166 ALTIBASE SERVER TUNING 조치사항 logfile 과 datafile 의디스크분리 체크포인트관련프로퍼티조절 CHECKPOINT_BULK_WRITE_PAGE_COUNT CHECKPOINT_BULK_WRITE_SLEEP_SEC CHECKPOINT_BULK_WRITE_SLEEP_USEC CHECKPOINT_BULK_SYNC_PAGE_COUNT checkpoint 시 dirty page 를여러번나누어서디스크에저장할수있는데이때한번에디스크에기록하는 page 수 checkpoint 시에한번디스크에기록한후 sleep 하는시간 ( 두값이합산된시간을 sleep) checkpoint 시에메모리와디스크의데이터를일치시킬 page 단위 기본값보다프로퍼티의값을줄여주면디스크 I/O 분산효과가있지만 logfile 이증가할수있음 위의사항을적용했음에도불구하고성능향상이없다면, 디스크성능한계치에도달한것으로예측

65 65 / 166 ALTIBASE SERVER TUNING 디스크테이블에대한 BUFFER HIT 율저하로디스크 I/O 증가 디스크테이블페이지를적재할때한정된크기의 buffer pool 을사용하므로버퍼교체가이루어지고, 버퍼교체가일어나면디스크 I/O 로인해성능저하 버퍼관련성능뷰를조회하여버퍼상황확인 isql> SELECT hit_ratio 'HIT_RATIO(%)', victim_search_warp FROM V$BUFFPOOL_STAT; HIT_RATIO(%) VICTIM_SEARCH_WARP VICTIM_SEARCH_WARP 값이증가하고있다면, flusher 가밀리고있음 디스크테이블관련 SQL 중대량의페이지를 access 하는쿼리튜닝 BUFFER_AREA_SIZE 프로퍼티변경

66 66 / 166 ALTIBASE SERVER TUNING 모든 SERVICE THREAD 가 BUSY 하면새로운 SERVICE THREAD 생성으로시스템부하증가 V$SERVICE_THREAD 를통해 service thread 관련부하확인 isql> SELECT RPAD(type, 30), count(*) FROM V$SERVICE_THREAD GROUP BY type 2 UNION ALL 3 SELECT RPAD(name, 30), value1 FROM V$PROPERTY 4 WHERE name LIKE 'MULTIPLEXING%_THREAD_COUNT'; RPAD(TYPE, 30) COUNT SOCKET 44 IPC 10 MULTIPLEXING_THREAD_COUNT 8 MULTIPLEXING_MAX_THREAD_COUNT 1024 SOCKET 항목의수치가 MULTIPLEXING_THREAD_COUNT 항목의수치보다클경우 오래수행되는 SQL 튜닝 MULTIPLEXING_THREAD_COUNT 프로퍼티변경

67 67 / 166 ALTIBASE SERVER TUNING 메모리 AGER 의 AGING 으로인한성능저하 메모리테이블의 MVCC 기법으로인해생성되는 old versioning 정보를메모리 ager가삭제 메모리 ager 종류 MEM_LOGICAL_AGER MEM_DELTHR 인덱스페이지에대한 versioning 정보삭제 데이터페이지에대한 versioning 정보삭제 메모리 ager 가밀린다면? versioning 증가에의한메모리증가 SQL 처리시 versioning 정보들을참조해야하기때문에성능저하 V$MEMGC 를통해메모리 ager 수행여부확인 메모리 ager 관련프로퍼티 AGER_WAIT_MINIMUM ager 가해야할 Job 이없을경우대기하는최소시간 AGER_WAIT_MAXIMUN ager 가해야할 Job 이없을경우대기하는최대시간 ager 는작업이없으면 MAX 만큼쉬고, 일이있으면 MAX 부터 1/2 씩쉬는시간을줄여 MIN 까지점차적으로쉬는시간을줄여감. 일이없으면다시 MAX 까지쉬는시간을늘려감

68 68 / 166 ALTIBASE SERVER TUNING 확인사항 gc gap 조회 isql> SELECT gc_name, add_oid_cnt, gc_oid_cnt, add_oid_cnt - gc_oid_cnt gcgap FROM V$MEMGC; ADD_OID_CNT GC_OID_CNT GCGAP gc gap 이클수록 ager 가삭제해야할 old version 의양이많다는의미 Ager 가대기하는 TRANSACTION 정보 isql> SELECT session_id, total_time, execute_time, tx_id, query 2 FROM V$STATEMENT 3 WHERE tx_id IN (SELECT id 4 FROM V$TRANSACTION 5 WHERE memory_view_scn = (SELECT minmemscnintxs FROM V$MEMGC LIMIT 1)) 6 AND execute_flag = 1 7 ORDER BY 2 DESC; 조치사항 GC 대상 TRANSACTION 에서수행하는 SQL 튜닝 AGER_WAIT_MINIMUM, AGER_WAIT_MAXIMUM 값을줄여 ager 가수행빈도증가

69 69 / 166 ALTIBASE SERVER TUNING SUMMARY 성능향상을위해 ALTIBASE 관점에서확인해야하는사항 logfile을 write하는동안대기하는가? 체크포인트시디스크 I/O에대한병목이큰가? buffer의 hit율은좋은가? 메모리 ager가잘수행되는가?

70 70 / 166 DBMS TUNING TRANSACTION TUNING

71 71 / 166 TRANSACTION TUNING 빈번한 PREPARE 수행 Prepare-Validation-Optimization(PVO) 과정이단순 DML 일경우전제 SQL 처리과정의 60~70% 비중차지 V$SYSSTAT 에서 execute 대비 prepare 수치조회 isql> SELECT TO_CHAR(SYSDATE,'HH:MI:SS'), name, value FROM V$SYSSTAT 2 WHERE name IN ('execute success count','prepare success count'); TO_CHAR(SYSDATE,'HH:MI:SS') NAME VALUE :35:47 execute success count :35:47 prepare success count isql> / TO_CHAR(SYSDATE,'HH:MI:SS') NAME VALUE :36:47 execute success count :36:47 prepare success count ( ) 문장실행시 39101( ) PREPARE 를실행 ( 약 83%) prepare 비중이많다면바인딩변수사용구조로변경권고

72 72 / 166 TRANSACTION TUNING 오래수행되는 SQL(LONG TERM QUERY) SQL 처리하는동안해당서비스쓰레드가 CPU 1 장 (100%) 을사용 CPU 부하의가장많은원인 V$STATEMENT 를통해오래수행되는 SQL 조회 V$STATEMENT 의 query 는 16K 까지만보여주므로전체 query 를조회하기위해서는 V$SQLTEXT 로확인

73 73 / 166 TRANSACTION TUNING V$SQLTEXT 전체 SQL 확인할때조회하는성능뷰 칼럼 설명 SID STMT_ID PIECE TEXT session ID statement ID SQL 조각순서 (64byte 단위로나누어저장되어있음 ) 실제 SQL 내용 V$STATEMENT 의 session_id, id 칼럼과 sid, stmt_id 의칼럼이각각같다는조건을이용하여구문작성 isql> SELECT text FROM V$SQLTEXT 2 WHERE (sid,stmt_id) IN (SELECT session_id, id FROM V$STATEMENT WHERE id = 1123) 3 ORDER BY piece;

74 74 / 166 TRANSACTION TUNING V$STATEMENT 에서 QUERY 와 TIME 정보확인 isql> ALTER SYSTEM SET TIMED_STATISTICS=1; isql> SET VERTICAL ON; isql> SELECT query, execute_time, parse_time, total_time, optimize_time, validate_time, 2 execute_success, mem_cursor_full_scan, mem_cursor_index_scan, disk_cursor_full_scan, 3 disk_cursor_index_scan 4 FROM V$STATEMENT 5 ORDER BY execute_time DESC 6 LIMIT 10; QUERY : select * from employee where ename= ALTIBASE' EXECUTE_TIME : 9 PARSE_TIME : 151 TOTAL_TIME : 423 OPTIMIZE_TIME : 76 VALIDATE_TIME : 97 EXECUTE_SUCCESS : 1 MEM_CURSOR_FULL_SCAN : 1 MEM_CURSOR_INDEX_SCAN : 0 DISK_CURSOR_FULL_SCAN : 0 DISK_CURSOR_INDEX_SCAN : 0 full table scan SQL 로대부분의시간이 prepare 하는데소요

75 TRANSACTION TUNING 오래수행되는 SQL 튜닝 실행계획을확인하여 access 방식, join 방식, join 순서등을파악하여튜닝 메모리테이블은 table full scan 보다는 index scan이더유리 실행계획확인방법 EXPLAIN PLAN 설정 ON : 실행결과 + 실행계획 ONLY : 실행계획만 OFF : 실행결과만 isql> ALTER SESSION SET EXPLAIN PLAN = ON; isql> SELECT eno, ename, salary FROM employee WHERE eno=1; ENO ENAME SALARY EJJUNG 1 row selected PROJECT ( COLUMN_COUNT: 3, TUPLE_SIZE: 35 ) SCAN ( TABLE: EMPLOYEE, INDEX: SYS_IDX_ID_163, ACCESS: 1, SELF_ID: 2 ) / 166

76 76 / 166 TRANSACTION TUNING LOCK lock 부하로인해다른 TRANSACTION에영향을주어성능저하 V$LOCK, V$LOCK_WAIT, V$TRANSACTION, V$STATEMENT 정보확인 TRANSACTION을가급적작은단위로나누어 lock 지속시간줄임 dead lock이발생할수있는상황방지

77 77 / 166 TRANSACTION TUNING LOCK 잡고있는 SQL 확인 isql> SELECT tx.id tx_id, lw.wait_for_trans_id blocked_tx_id, l.lock_desc, 2 DECODE(tx.first_update_time, 0, '0', to_char(to_date(' ','yyyymmddhh') 3 + tx.first_update_time / (60*60*24), 'MM/DD HH:MI:SS')) first_update_time, 4 DECODE(tx.status, 0, 'BEGIN', 1, 'PRECOMMIT', 2, 'COMMIT_IN_MEMORY', 3, 'COMMIT', 5 4, 'ABORT', 5, 'BLOCKED', 6, 'END') status, 6 st.query current_query 7 FROM V$TRANSACTION tx, V$LOCK l 8 LEFT OUTER JOIN V$LOCK_WAIT lw ON l.trans_id = lw.trans_id 9 LEFT OUTER JOIN (SELECT st.query,tx_id FROM V$STATEMENT st, V$SESSION ss 11 WHERE ss.id = st.session_id ) st 12 ON l.trans_id = st.tx_id 13 WHERE tx.id = l.trans_id; TX_ID : BLOCKED_TX_ID : LOCK_DESC : IX_LOCK FIRST_UPDATE_TIME : 09/02 14:42:35 STATUS : BEGIN CURRENT_QUERY : update t1 set c1=1 where c1 between 1.11 and TX_ID : 4288 BLOCKED_TX_ID : LOCK_DESC : IX_LOCK FIRST_UPDATE_TIME : 0 STATUS : BLOCKED CURRENT_QUERY : update t1 set c1=1 where c1 =1.11

78 78 / 166 TRANSACTION TUNING LOCK 잡고있는세션강제종료 isql(sysdba)> ALTER DATABASE mydb SESSION CLOSE 10; mydb : 데이터베이스이름 10 : session_id 강제세션종료시세션종료될때까지시간소요 (rollback 처리등 )

79 79 / 166 TRANSACTION TUNING DURABILITY 설정방법 altibase.properties 파일에서관련프로퍼티변경설정 COMMIT_WRITE_WAIT_MODE, LOG_BUFFER_TYPE 프로퍼티설정 데이터베이스구동시설정된 Durability 로구동 데이터베이스운영중에실시간으로변경불가능

80 TRANSACTION TUNING COMMIT_WRITE_WAIT_MODE =0 OS Kernel 영역로그버퍼를사용하기때문에 ALTIBASE 프로세스가비정상종료를하더라도 TRANSACTION이 commit한로그는운영체제에의해로그파일에반영 성능지향설정방법 OS의 crash 상황만아니면 TRANSACTION durability 완벽지원 COMMIT_WRITE_WAIT_MODE = 1 로그를프로세스영역의로그버퍼에기록하고, 물리적인로그파일에기록하는것을보장하기때문에 ALTIBASE 장애시에도 durability 보장 모든로그가로그파일에반영됨을보장하기때문에어떠한시스템장애상황에서도완벽하게 TRANSACTION durability 보장 durability level 중성능이가장느림 80 / 166

81 TRANSACTION TUNING DURABILITY 설정방법 목적 성능위주설정 (Durability = 3) 설명및설정항목 운영체제가 TRANSACTION 로그파일의디스크 Sync 를보장하는설정운영체제의 Crash 와같은장애를제외한모든장애경우에대해 durability 보장 LOG_BUFFER_TYPE 0 COMMIT_WRITE_WAIT_MODE 0 안정성위주설정 (Durability = 5) ALTIBASE 가직접디스크 Sync 를보장하는설정물리적인디스크장애외에는어떠한장애라도 durability 보장 LOG_BUFFER_TYPE 1 COMMIT_WRITE_WAIT_MODE 1 COMMIT_WRITE_WAIT_MODE ALTER SESSION 명령어로변경가능 LOG_BUFFER_TYPE 변경하려면데이터베이스재기동필요 81 / 166

82 TRANSACTION TUNING SUMMARY 성능향상을위해 application 관점에서확인해야하는사항 TRANSACTION 양이많은가? connect - disconnect 를반복하는구조인가? prepare 를자주하는가? long term query 가수행되는가? lock 경합이빈번히발생하는가? update retry 가발생하는가? 통신방식은무엇을사용하는가? 82 / 166

83 83 / 166 DBMS TUNING DBMS STATS

84 84 / 166 DBMS STATS 개념 DBMS의통계자료를수집, 변경 ( 설정 ), 삭제하는기능 저장프로시저 (Stored Procedure) 형태로제공 통계자료는쿼리옵티마이저가최적화된실행계획을만들기위해사용 개별컬럼, 인덱스, 테이블또는시스템별로통계자료설정및삭제 버전부터제공 유의사항 통계자료수집시, SERVER 부하가중 통계자료는근사치를수집 통계자료를수집한대상객체와관련된모든쿼리의실행계획을재구축하게되어성능저하발생가능

85 85 / 166 DBMS STATS V$DBMS_STATS 데이터베이스전체의통계정보를보여주는성능뷰 Column name Description DATE 마지막으로통계정보를수집한일시 SAMPLE_SIZE 통계정보수집을위해선택된샘플의크기 NUM_ROW_CHANGE 마지막통계정보수집이후행개수의변경된양 TYPE 통계수집대상의유형 (S : 시스템, T : 테이블, I : 인덱스, C : 컬럼 ) SREAD_TIME 하나의페이지를읽는데소요된평균시간 MREAD_TIME 여러페이지를한번에읽는데소요된평균시간 MREAD_PAGE_COUNT 여러페이지를한번에읽을때얽어오도록설정된페이지의수 HASH_TIME 해쉬수행에소요된평균시간 COMPARE_TIME 비교수행에소요된평균시간 STORE_TIME 메모리임시테이블에저장하는데소요된평균시간 TARGET_ID 통계수집대상이된테이블의 OID 또는인덱스의 ID COLUMN_ID 통게수집대상이된컬럼의 ID NUM_ROW 통계수집대상 ( 테이블또는인덱스 ) 의행의개수 NUM_PAGE 통계수집대상 ( 테이블또는인덱스 ) 의페이지개수

86 86 / 166 DBMS STATS V$DBMS_STATS Column name NUM_DIST NUM_NULL AVG_LEN ONE_ROW_READ_TIME AVG_SLOT_COUNT INDEX_HEIGHT CLUSTERING_FACTOR MIN MAX META_SPACE USED_SPACE AGEABLE_SPACE FREE_SPACE Description 인덱스또는컬럼에서중복되지않은유일한값의개수컬럼에서 NULL의개수행또는컬럼의평균길이행하나를읽는데소요된평균시간 Leaf 노드당슬롯의평균개수인덱스의루트에서 leaf 노드까지의깊이인덱스에부합하게데이터가정렬되어있는정도인덱스또는컬럼의최소값인덱스또는컬럼의최대값데이터관리를위해사용된공간의크기데이터저장하기위해사용된공간의크기나중에 aging 되어재활용할수있는공간의크기테이블또는인덱스에할당된영역중에서사용가능한공간의크기 V$DBMS_STATS 성능 View 는 버전부터제공

87 87 / 166 DBMS STATS DBMS STATS 프로시저 통계자료수집및실행계획재구축 Procedure Name GATHER_SYSTEM_STATS GATHER_DATABASE_STATS GATHER_TABLE_STATS GATHER_INDEX_STATS Description 데이터베이스시스템에대한통계자료수집모든테이블에대한통계자료수집특정테이블에대한통계자료수집특정인덱스에대한통계자료수집 버전부터제공 Procedure 개별적인 Name 컬럼, 인덱스, 테이블또는시스템관련 Description 통계자료를변경 SET_SYSTEM_STATS 데이터베이스시스템에대한통계자료를변경 SET_TABLE_STATS 특정테이블에대한통계자료를변경 SET_INDEX_STATS 특정인덱스에대한통계자료를변경 SET_COLUMN_STATS 특정테이블의컬럼에대한통계자료를변경 버전부터제공

88 88 / 166 DBMS STATS DBMS STATS 프로시저 개별적인컬럼, 인덱스, 테이블또는시스템관련통계자료를조회 Procedure Name GET_SYSTEM_STATS GET_DATABASE_STATS GET_TABLE_STATS GET_INDEX_STATS Description 데이터베이스시스템에대한통계자료조회모든테이블에대한통계자료조회특정테이블에대한통계자료조회특정인덱스에대한통계자료조회 버전부터제공 Procedure 개별적인 Name 컬럼, 인덱스, 테이블또는시스템관련 Description 통계자료를삭제 DELETE_SYSTEM_STATS 데이터베이스시스템에대한통계자료를삭제 DELETE_DATABASE_STATS 모든테이블에대한통계자료를삭제 DELETE_TABLE_STATS 특정테이블에대한통계자료를삭제 DELETE_INDEX_STATS 특정인덱스에대한통계자료를삭제 DELETE_COLUMN_STATS 특정테이블의컬럼에대한통계자료를삭제 버전부터제공

89 89 / 166 ALTIBASE ADVANCE ALTIBASE OPERATION

90 90 / 166 ALTIBASE OPERATION CONTENTS TRACE FILE PERFORMANCE VIEW OS CHECK LIST

91 91 / 166 ALTIBASE OPERATION TRACE FILE

92 92 / 166 TRACE FILE ALTIBASE TRACE FILE $ALTIBASE_HOME/trc 에위치 C1 C2 C3 E/SQL CLI ODBC JDBC IPC UNIX DOMAIN TCP/IP altibase_boot.log Physical Memory ALTIBASE Parsing/ validation Transaction Manager Query Processor Storage Manager Memory Tables Optimizer Recovery Manager Executor Buffer Manager Buffer Replication altibase_qp.log altibase_sm.log altibase_rp.log altibase_rp_conflict.log Checkpoint image files Datafiles loganchor logfiles ALTIBASE Architecture

93 93 / 166 TRACE FILE TRACE FILE 종류 파일이름 주요내용 altibase_boot.log altibase_error.log altibase_rp.log ALTIBASE 가동작된상태정보구동및종료에관련된각종 step 정보구동중디스크부족으로인한에러등여러가지에러상황에대한정보 비정상종료가발생할경우 Call-Stack 정보 Replication 모듈에서발생하는경고및에러정보 altibase_rp_confilct.log altibase_sm.log altibase_qp.log 이중화상태, 이중화 conflict 등의정보 Storage Manager 모듈에서발생하는경고및에러정보체크포인트, 백업등의정보 Query Processor 모듈에서발생하는경고및에러정보 DDL 문의성공 / 실패정보 altibase_id.log 시스템레벨에서발생하는경고및에러정보 altibase_mm.log 메인모듈에서발생하는경고및에러정보

94 94 / 166 TRACE FILE altibase_qp.log 사용자가수행한 DDL문정보 ALTER SYSTEM 명령어로 property를변경한정보 altibase_qp.log SAMPLE 테이블스페이스 DDL [2012/10/27 13:32:48] [Thread-258] [Level-2] [EXEC_DDL_BEGIN : CREATE TABLESPACE DISK_TBS DATAFILE 'disk_tbs001.dbf' SIZE 100M AUTOEXTEND OFF] [2012/10/27 13:32:50] [Thread-258] [Level-2] [EXEC_DDL_END : SUCCESS] 테이블 DDL [2012/10/27 14:11:53] [Thread-515] [Level-2] [EXEC_DDL_BEGIN : TRUNCATE TABLE TEST12] [2012/10/27 14:11:53] [Thread-515] [Level-2] [EXEC_DDL_END : SUCCESS] Property 변경 [2012/10/31 11:36:59] [Thread-515] [Level-0] [SET-PROP] TIMED_STATISTICS=[1]

95 95 / 166 TRACE FILE altibase_sm.log 메모리 / 디스크체크포인트진행및수행결과 인덱스생성진행및수행결과 백업진행및수행결과 ARCHIVE thread 오류발생정보 기타디스크관련에러정보 altibase_sm.log SAMPLE( 체크포인트 ) -- CHECKPOINT 가발생한이유에대해기록 CHECKPOINT BY LOGFILE SWITCH COUNT, CHECKPOINT BY USER, CHECKPOINT BY TIME [2018/02/06 17:23:05 55E][PID:16377][Thread ][LWP-16414] [CHECKPOINT BY TIME(6000 sec)] -- CHECKPOINT 시작 [2018/02/06 17:23:05 55F][PID:16377][Thread ][LWP-16414] [CHECKPOINT-BEGIN] -- BEGIN CHECKPOINT 기록메모리데이터베이스의 recoverylsn 정보가기록되고차후 Recovery 를할경우이정보이용 [2018/02/06 17:23:05 560][PID:16377][Thread ][LWP-16414] [CHECKPOINT-step2] Write BeginChkpt Log [0, ,0]

96 96 / 166 TRACE FILE -- CHECKPOINT 발생시점에가장오래된 TRANSACTION 이기록한첫번쨰 BeginLog Active Tx Recovery LSN [ ,0] -- CHECKPOINT 발생시점에버퍼에접근한가장오래된 TRANSACTION 이기록한첫번째 BeginLog Disk Buffer Oldest LSN [ , ] -- 변경된메모리데이터베이스의 DirtyPage Flush 메모리에대한 TRANSACTION 로그를디스크로쓰고, 변경된데이터페이지를 Checkpoint Image File 에저장 [2018/02/06 17:23:05 561][PID:16377][Thread ][LWP-16414] [CHECKPOINT-step3] Flush Dirty Page(s) -- Ping-Pong CHECKPOINT 를수행하기때문에이전에내렸던 Dirty Page 개수기록 [2018/02/06 17:23:05 562][PID:16377][Thread ][LWP-16414] [PRE-DirtyPageCount=0] -- 현재 CHECKPOINT 시점에새롭게추가된 DirtyPage 개수 [2018/02/06 17:23:05 563][PID:16377][Thread ][LWP-16414] [NEW-DirtyPageCount=11] -- 이전 CHECKPOINT 와현재 CHECKPOINT 시점에중복되는 DirtyPage 개수 [2018/02/06 17:23:05 564][PID:16377][Thread ][LWP-16414] [DUP-DirtyPageCount=0] -- DirtyPage 내리기전, TRANSACTION 로그를먼저디스크로 sync [2018/02/06 17:23:05 565][PID:16377][Thread ][LWP-16414] + Begin Sync For All-LFG - Request LSN [0, ] [2018/02/06 17:23:05 566][PID:16377][Thread ][LWP-16414] + End Sync For All-LFG

97 97 / 166 TRACE FILE -- flush 한 DirtyPage 수 [2018/02/06 17:23:05 567][PID:16377][Thread ][LWP-16414] [FLU-DirtyPageCount=11] -- 2 벌의데이터파일에모두기록되어 DirtyPageList 에서제거된 Page 수 [2018/02/06 17:23:05 568][PID:16377][Thread ][LWP-16414] [REM-DirtyPageCount=0] -- CHECKPOINT Image 파일들을모두 sync [2018/02/06 17:23:05 569][PID:16377][Thread ][LWP-16414] [CHECKPOINT-step4] sync Database File -- DISK I/O 통계정보 ========================================================== SM IO STAT - Checkpoint DB SIZE : Byte ( 11 Page) LOG SIZE : 57 Byte TOTAL TIME : 0 s 1735 us LOG SYNC TIME: 0 s 290 us DB FLUSH TIME: 0 s 1445us SYNC TIME : 0 s 938 us WAIT TIME : 0 s 0 us WRITE TIME: 0 s 507 us LOG IO PERF : MB/sec DB IO PERF : MB/sec =========================================================

98 98 / 166 TRACE FILE -- CHECKPOINT 완료를메모리에로깅 [2018/02/06 17:23:05 56B][PID:16377][Thread ][LWP-16414] [CHECKPOINT-step5] Write End_Chkpt Log [0, , ] -- CHECKPOINT 과정에서변경된페이지에접근한 TRANSACTION 이존재할수있고 CHECKPOINT 가완료된로그도디스크로 Sync 해야하기때문에다시한번메모리상의로그 Sync [2018/02/06 17:23:05 56C][PID:16377][Thread ][LWP-16414] [CHECKPOINT-step6] Sync Log File [2018/02/06 17:23:05 56D][PID:16377][Thread ][LWP-16414] + Begin Sync For All-LFG - Request LSN [0, ] [2018/02/06 17:23:05 56E][PID:16377][Thread ][LWP-16414] + End Sync For All-LFG -- 현재는의미없는로그임으로무시 [2018/02/06 17:23:05 56F][PID:16377][Thread ][LWP-16414] [CHECKPOINT-step7] Check LogFiles That Is Not Needed -- sender 가어떤오류가발생했을때재전송을시작해야할 SN 정보기록 [2018/02/06 17:23:05 570][PID:16377][Thread ][LWP-16414] Replication MinLSN [ , ] -- RecoveryLSN 에대해디스크부분에대한 RecoveryLSN 정보를 loganchor 파일에기록 [2018/02/06 17:23:05 571][PID:16377][Thread ][LWP-16414] [CHECKPOINT-step8] Update and Flush Log Anchor -- 메모리상의로그와 DirtyPage 들을디스크로기록했음으로더이상복구에필요하지않은로그파일삭제 [2018/02/06 17:23:05 572][PID:16377][Thread ][LWP-16414] [CHECKPOINT-step9] Remove Online Log File[None]

99 99 / 166 TRACE FILE -- 모든 CHECKPOINT Image 파일및디스크데이터파일에 RedoLSN 정보기록 [2018/02/06 17:23:05 573][PID:16377][Thread ][LWP-16414] [CHECK DATABASE SID=0, PPID=0, FID=0] [2018/02/06 17:23:05 574][PID:16377][Thread ][LWP-16414] LogAnchor SpaceID=0, SmVersion= , DBFileHdr SpaceID=0, SmVersion= , [2018/02/06 17:23:05 575][PID:16377][Thread ][LWP-16414] RedoLSN=control[0, ], [0, ] [2018/02/06 17:23:05 576][PID:16377][Thread ][LWP-16414] CreateLSN=control[0,540], [0,540] -- CHECKPOINT 의 Begin/End 시점의 LSN 정보기록, 디스크의 RedoLSN 정보기록 [2018/02/06 17:23:05 583][PID:16377][Thread ][LWP-16414] [CHECKPOINT-summary] BeginChkptLSN=[0, ], EndChkptLSN=[0, ], DiskRecLSN=[0, ] -- 현재 CHECKPOINT 가진행되는시점에서가장오래된 TRANSACTION 이기록한첫번째 TRANSACTION 로그의시작위치기록 [2018/02/06 17:23:05 584][PID:16377][Thread ][LWP-16414] Minimum LSN = [0, ] -- CHECKPOINT 완료기록 [2018/02/06 17:23:05 585][PID:16377][Thread ][LWP-16414] [CHECKPOINT-END] -- 다음 CHECKPOINT 시간기록 [2018/02/06 17:23:05 586][PID:16377][Thread ][LWP-16414] Sleep checkpoint thread ( next time : :3:5 )

100 100 / 166 TRACE FILE altibase_sm.log SAMPLE(ONLINE BACKUP) [2019/03/07 16:08:26 633][PID:113130][Thread ][LWP ] DISK TABLESPACE SYS_TBS_DISK_DATA DATABASE /ssd/mbw/altibase_home/dbs/system001.dbf BACKUP TO /ssd/mbw/work/imsi5/system001.dbf [2019/03/07 16:08:27 634][PID:113130][Thread ][LWP ] DISK TABLESPACE SYS_TBS_DISK_UNDO DATABASE /ssd/mbw/altibase_home/dbs/undo001.dbf BACKUP TO /ssd/mbw/work/imsi5/undo001.dbf [2019/03/07 16:08:27 635][PID:113130][Thread ][LWP ] DISK TABLESPACE DISK_TBS DATABASE /ssd/mbw/altibase_home/dbs/disk_tbs001.dbf BACKUP TO /ssd/mbw/work/imsi5/disk_tbs001.dbf [2019/03/07 16:08:27 636][PID:113130][Thread ][LWP ] Waiting logfile0 to archive [2019/03/07 16:08:32 637][PID:113130][Thread ][LWP ] Database-Level Backup Completed [SUCCESS]

101 101 / 166 TRACE FILE altibase_rp.log 이중화시작 / 중지및장애상황에대한정보 REPLICATION_LOCK_TIMEOUT에의한오류정보 REPLICATION_RECEIVE_TIMEOUT에의한오류정보 altibase_rp.log SAMPLE 이중화시작 Sender [2019/03/18 10:59:02 617][PID:104294][Thread ][LWP ] [Sender] Replication REP1:0 Start... at [ ] Receiver [2019/03/18 10:58:53 613][PID:104294][Thread ][LWP ] [Receiver] Replication REP1 Started...

102 TRACE FILE 이중화시작 Sender [2019/03/18 11:00:43 61A][PID:104294][Thread ][LWP ] SEND Stop Message! [2019/03/18 11:00:43 61B][PID:104294][Thread ][LWP ] SEND Stop Message SUCCESS!!! [2019/03/18 11:00:43 61C][PID:104294][Thread ][LWP ] [SenderApply] Replication REP1 Normal End [2019/03/18 11:00:43 61D][PID:104294][Thread ][LWP ] [Sender] Stop sender thread REP1:0 at [ ], Restart SN[ ] Restart SN 은다음이중화를재시작할때해당값이기록된로그부터재전송을하겠다는의미 Receiver [2019/03/18 11:00:43 584][PID:7301][Thread ][LWP-7407] [Receiver] Replication Stop Message is arrived [2019/03/18 11:00:43 585][PID:7301][Thread ][LWP-7407] [Receiver] RepName:REP1 is processed at [Last Processed SN: ] [2019/03/18 11:00:43 586][PID:7301][Thread ][LWP-7407] [Receiver] RepName:REP1 is received at [Last Received SN: ] [2019/03/18 11:00:43 587][PID:7301][Thread ][LWP-7407] [Receiver] Normal Stop [2019/03/18 11:00:43 588][PID:7301][Thread ][LWP-7407] [Receiver] Replication REP1 Stopped / 166

103 103 / 166 TRACE FILE 이중화 SYNC Sender [2019/03/18 11:04:30 637][PID:104294][Thread ][LWP ] [PJChild] [0] PJ_RUN [2019/03/18 11:04:30 638][PID:104294][Thread ][LWP ] [PJChild] [0] TABLE TEST1 SYNC START [2019/03/18 11:04:30 639][PID:104294][Thread ][LWP ] [PJChild] [0] TABLE: TEST1, PROCESSED: 5, TUPLE: 5 sync 할대상테이블및레코드건수 [2019/03/18 11:04:30 63A][PID:104294][Thread ][LWP ] [PJ Child] SEND Stop Message! [2019/03/18 11:04:30 63B][PID:104294][Thread ][LWP ] [PJ Child] SEND Stop Message SUCCESS!!! sync 완료후 sync 중지 [2019/03/18 11:04:30 63C][PID:104294][Thread ][LWP ] [PJChild] [0] PJ_EXIT [2019/03/18 11:04:31 63D][PID:104294][Thread ][LWP ] Succeeded to insert data. [2019/03/18 11:04:32 63E][PID:104294][Thread ][LWP ] Succeeded to rebuild indexes. [2019/03/18 11:04:32 63F][PID:104294][Thread ][LWP ] [Sender] Replication REP1:0 Start... at [ ] sender 자동재구동

104 104 / 166 TRACE FILE 이중화 SYNC Receiver [2019/03/18 11:04:30 58F][PID:7301][Thread ][LWP-7407] [Receiver] Replication REP1 Started... receiver 자동재구동 [2019/03/18 11:04:30 590][PID:7301][Thread ][LWP-7355] [Receiver] Replication REP1 Started... sync 용 receiver 구동 [2019/03/18 11:04:30 591][PID:7301][Thread ][LWP-7355] [Receiver] Replication Stop Message is arrived sync 용 receiver 종료 [2019/03/18 11:04:30 592][PID:7301][Thread ][LWP-7355] [Receiver] RepName:REP1 is processed at [Last Processed SN: ] [2019/03/18 11:04:30 593][PID:7301][Thread ][LWP-7355] [Receiver] RepName:REP1 is received at [Last Received SN:0]

105 TRACE FILE Sender 비정상종료 Sender 비정상종료되어 Sender 관련로그기록불가 Receiver [2019/03/21 13:43:19 680][PID:10233][Thread ][LWP-10326] ERR-7101a(errno=16) Connection closed 단절감지 [2019/03/21 13:43:19 680][PID:10233][Thread ][LWP-10326] ERR-7101a(errno=16) Connection closed [2019/03/21 13:43:19 6DA][PID:2343][Thread ][LWP-2456] ERR-61048(errno=62) [Receiver] REP1 receiver has recvxlog error in run() [2019/03/21 13:43:19 6DB][PID:2343][Thread ][LWP-2456] [Receiver] RepName:REP1 is processed at [Last Processed SN: ] [2019/03/21 13:43:19 6DC][PID:2343][Thread ][LWP-2456] [Receiver] RepName:REP1 is received at [Last Received SN: ] [2019/03/21 13:43:19 6DD][PID:2343][Thread ][LWP-2456] ERR-6104b(errno=62) [Receiver] REP1 receiver is ended (by thr_exit) [2019/03/21 13:43:19 6DE][PID:2343][Thread ][LWP-2456] Error Stop! [2019/03/21 13:43:19 6DF][PID:2343][Thread ][LWP-2456] [Receiver] Replication REP1 Stopped... Receiver 중단 105 / 166

106 TRACE FILE Sender 복구후 Sender [2019/03/21 13:46:12 667][PID:3713][Thread ][LWP-3811] [SenderApply] Replication REP1 Start [2019/03/21 13:46:12 668][PID:3713][Thread ][LWP-3784] [Sender] Replication REP1:0 Start... at [ ] Receiver [2019/03/21 13:46:12 675][PID:3713][Thread ][LWP-3813] [Receiver] Replication REP1 Started / 166

107 TRACE FILE Receiver 비정상종료 Receiver 비정상종료되어 Receiver 관련로그기록불가 Sender [2019/03/21 13:43:19 680][PID:10233][Thread ][LWP-10326] ERR-7101a(errno=16) Connection closed 연결단절감지 [2019/03/21 13:43:19 681][PID:10233][Thread ][LWP-10295] ERR-620f0(errno=11) [Sender] Stop sender thread REP1:0 at [ ], Restart SN[ ] Sender 중단 [2019/03/21 13:43:19 682][PID:10233][Thread ][LWP-10295] [Sender] getnextlastusedhostno: from :40700 to :40700 [2019/03/21 13:43:19 683][PID:10233][Thread ][LWP-10295] ERR-71017(errno=111) Failed to invoke the connect() system function, errno=111 이중화백업라인체크 [2019/03/21 13:43:19 684][PID:10233][Thread ][LWP-10295] [Sender] getnextlastusedhostno: from :40700 to :40700 [2019/03/21 13:43:19 685][PID:10233][Thread ][LWP-10295] ERR-61022(errno=111) [Sender] Sender Sleep : 60 seconds 다음재접속시도까지 (REPLICATION_SENDER_SLEEP_TIMEOUT=60 초 ) 만큼 Sleep 107 / 166

108 TRACE FILE 60 초후 Receiver 복구안되는경우 장애시점로그와동일한 connection 오류발생하고이중화백업라인시도후실패하게되면 Sender 다시 sleep [2019/03/21 13:44:19 686][PID:10233][Thread ][LWP-10295] ERR-71017(errno=111) Failed to invoke the connect() system function, errno=111 [2019/03/21 13:44:19 687][PID:10233][Thread ][LWP-10295] [Sender] getnextlastusedhostno: from :40700 to :40700 [2019/03/21 13:44:19 688][PID:10233][Thread ][LWP-10295] ERR-61022(errno=111) [Sender] Sender Sleep : 60 seconds [2019/03/21 13:45:19 689][PID:10233][Thread ][LWP-10295] ERR-71017(errno=111) Failed to invoke the connect() system function, errno=111 [2019/03/21 13:45:19 68A][PID:10233][Thread ][LWP-10295] [Sender] getnextlastusedhostno: from :40700 to :40700 [2019/03/21 13:45:19 68B][PID:10233][Thread ][LWP-10295] ERR-61022(errno=111) [Sender] Sender Sleep : 60 seconds Receiver 복구이후로그는 Sender 복구로그와동일 108 / 166

109 TRACE FILE REPLICATION_RECEIVE_TIMEOUT 에러 Sender -- Timeout 이발생한기록 [2013/11/30 16:13:03] [Thread-6786] [Level-0] ERR-61075(errno=16) Timeout exceed. -- 반복적으로재접속이발생 [2013/11/30 16:36:02] [Thread-6529] [Level-0] ERR-620f0(errno=16) [Sender] Stop sender thread REP1:0 at [ ], Restart SN[ ] [2013/11/30 16:36:07] [Thread-6529] [Level-0] [Sender] getnextlastusedhostno: from :37585 to :37585 [2013/11/30 16:36:07] [Thread-6529] [Level-0] ERR-7101a(errno=0) Connection closed [2013/11/30 16:36:07] [Thread-6529] [Level-0] ERR-61003(errno=0) Unable to read from a socket [2013/11/30 16:36:07] [Thread-6529] [Level-0] [Sender] getnextlastusedhostno: from :37585 to :37585 [2013/11/30 16:36:07] [Thread-6529] [Level-0] ERR-61022(errno=0) [Sender] Sender Sleep : 60 seconds [2013/11/30 16:37:07] [Thread-6529] [Level-0] ERR-7101a(errno=0) Connection closed [2013/11/30 16:37:07] [Thread-6529] [Level-0] ERR-61003(errno=0) Unable to read from a socket 109 / 166

110 TRACE FILE REPLICATION_RECEIVE_TIMEOUT 에러 Receiver Receiver 데이터베이스의 lock 대기로 timeout 발생의경우 [2013/11/30 16:38:07] [Thread-5956] [Level-0] ERR-61030(errno=11) [Receiver] Failed to build meta information Sender 에의해재구동 [2013/11/30 16:45:18] [Thread-6486] [Level-0] ERR-7101a(errno=32) Connection closed [2013/11/30 16:45:18] [Thread-6486] [Level-0] ERR-61048(errno=32) [Receiver] REP1 receiver has recvxlog error in run() [2013/11/30 16:45:39] [Thread-6486] [Level-0] ERR-71032(errno=76) Unable to shutdown the socket [2013/11/30 16:45:39] [Thread-6486] [Level-0] ERR-61087(errno=76) [Network] Shutdown link operation is failed [2013/11/30 16:45:39] [Thread-6486] [Level-0] ERR-6104b(errno=76) [Receiver] REP1 receiver is ended (by thr_exit) [2013/11/30 16:45:39] [Thread-6486] [Level-0] Error Stop! [2013/11/30 16:45:39] [Thread-6486] [Level-0] [Receiver] Replication REP1 Stopped / 166

111 TRACE FILE altibase_rp_conflict.log conflict 발생시해당 SQL 및 conflict 유형정보기록 Insert Duplicate 에러 Sender 로부터수신한 Insert 데이터와동일한 PK 를가진데이터가 Receiver 측데이터베이스에이미존재할경우에러기록 [2019/03/21 13:56:17 68A][PID:3713][Thread ][LWP-3813] ERR-11058(errno=62) The row already exists in a unique index. [2019/03/21 13:56:17 68B][PID:3713][Thread ][LWP-3813] INSERT INTO SYS.TEST1 VALUES ( 100, 'aaaa' ); (TID : 20320) [2019/03/21 13:56:17 68C][PID:3713][Thread ][LWP-3813] COMMIT (TID : 20320) Update Not Found 에러 Sender 로부터수신한 Update 에해당하는 PK 를가진데이터가 Receiver 측데이터베이스에존재하지않을경우에러기록 [2019/03/21 13:58:03 690][PID:3713][Thread ][LWP-3813] ERR-610f7(errno=62) [Receiver] Unable to find record in executeupdate() function [2019/03/21 13:58:03 691][PID:3713][Thread ][LWP-3813] UPDATE SYS.TEST1 SET C2 = 'bbbb' WHERE C1 = 101; (TID : 26464) [2019/03/21 13:58:03 692][PID:3713][Thread ][LWP-3813] COMMIT (TID : 26464) 111 / 166

112 112 / 166 TRACE FILE Update Conflict 에러 Sender 에서 Update 를수행했던시점의변경대상컬럼이가지는변경전값과 Receiver 데이터베이스의변경대상컬럼이가지는현재값이다를경우에러기록 Sender 데이터베이스는 Update SQL 에대해변경대상컬럼의변경전 / 후값을함께전송하여비교후 Update 수행 [2019/03/21 13:57:12 68D][PID:3713][Thread ][LWP-3813] ERR-61035(errno=62) [Receiver] An update conflict occurred. [2019/03/21 13:57:12 68E][PID:3713][Thread ][LWP-3813] UPDATE SYS.TEST1 SET C2 = 'bbbb' WHERE C1 = 100; (TID : 24416) [2019/03/21 13:57:12 68F][PID:3713][Thread ][LWP-3813] COMMIT (TID : 24416) Delete Not Found 에러 Sender 로부터수신한 Deelte 에해당하는 PK 를가진데이터가 Receiver 측데이터베이스에존재하지않을경우에러기록 [2019/03/21 13:58:35 693][PID:3713][Thread ][LWP-3813] ERR-610f7(errno=62) [Receiver] Unable to find record in executedelete() function [2019/03/21 13:58:35 694][PID:3713][Thread ][LWP-3813] DELETE FROM SYS.TEST1 WHERE C1 = 101; (TID : 28512) [2019/03/21 13:58:35 695][PID:3713][Thread ][LWP-3813] COMMIT (TID : 28512)

113 113 / 166 ALTIBASE OPERATION PERFORMANCE VIEW

114 114 / 166 PERFORMANCE VIEW ALTIBASE 성능뷰 시스템통계정보 session statement lock service thread 메모리 ager buffer logfile 테이블스페이스 usage 테이블 usage 메모리 usage 이중화

115 115 / 166 PERFORMANCE VIEW V$SYSSTAT NAME VALUE 시스템상태정보 3 초마다정보갱신 적절한주기를두고전, 후의값을비교하여각항목의증가추이관찰 시스템의부하항목확인 칼럼정보 칼럼 sample SQL 시스템각상태의이름 각상태값의누적치 isql> SELECT TO_CHAR(SYSDATE,'HH:MI:SS'), name, value FROM V$SYSSTAT 2 WHERE name IN ('logon cumulative', 'execute success count', 'prepare success count', 3 'memory table cursor full scan count', 'memory table cursor index scan count', 4 'disk table cursor full scan count', 'disk table cursor index scan count', 5 'update retry count', 'lock row retry count' 6 ); 내용

116 116 / 166 PERFORMANCE VIEW V$SESSTAT 접속된모든세션통계치 접속이끊겨진세션의정보는삭제 칼럼정보 칼럼 SID 세션 ID NAME 시스템각상태의이름 VALUE 각상태값의누적치 내용 sample SQL isql> SELECT sid, TO_CHAR(SYSDATE,'HH:MI:SS'), name, value FROM V$SESSTAT 2 WHERE name IN ('logon cumulative', 'execute success count', 'prepare success count', 3 'memory table cursor full scan count', 'memory table cursor index scan count', 4 'disk table cursor full scan count', 'disk table cursor index scan count', 5 'update retry count', 'lock row retry count' 6 );

117 117 / 166 PERFORMANCE VIEW V$SESSION ALTIBASE 내부에생성된 CLIENT 세션정보 칼럼정보 칼럼 내용 ID 세션 ID TRANS_ID 현재사용하고있는 TRANSACTION ID TASK_STATE WATING, READY, EXECUTING, QUEUE WAIT, QUEUE READY, UNKNOWN COMM_NAME 클라이언트의접속정보 OPENED_STMT_COUNT statement 개수 CLIENT_PID CLIENT 프로세스 ID AUTOCOMMIT_FLAG autocommit 모드확인 (0/1) SESSION_STATE CURRENT_STMT_ID LOGIN_TIME INIT, AUTH, SERVICE READY, SERVICE, END, ROLLBACK, UNKNOWN 현재수행중인 statement ID. recursive SQL 은제외 CLIENT 접속시간 TO_CHAR(TO_DATE(' ','yyyymmddhh24') + login_time/60/60/24, 'yyyymmdd hh:mi:ss')

118 118 / 166 PERFORMANCE VIEW V$SESSIONMGR 세션통계정보 비정상종료된세션누적통계 칼럼 내용 IDLE_TIMEOUT_COUNT 발생된 idle timeout의횟수 QUERY_TIMEOUT_COUNT 발생된 query timeout의횟수 DDL_TIMEOUT_COUNT 발생된 DDL timeout의횟수 FETCH_TIMEOUT_COUNT 발생된 fetch timeout의횟수 UTRANS_TIMEOUT_COUNT 발생된 utrans timeout의횟수 SESSION_TERMINATE_COUNT sysdba에의해강제로연결이끊긴횟수

119 119 / 166 PERFORMANCE VIEW sample SQL 접속유형별세션수 isql> SELECT SUBSTR(comm_name, 1,4) con_type, COUNT(*) cnt 2 FROM V$SESSION 3 GROUP BY SUBSTR(comm_name, 1,4); CON_TYPE CNT TCP 105 UNIX 1 IPC 100 비정상종료된세션누적치 isql> SELECT login_timeout_count, idle_timeout_count, query_timeout_count, 2 fetch_timeout_count, utrans_timeout_count, session_terminate_count 3 FROM V$SESSIONMGR; LOGIN_TIMEOUT_COUNT : 0 IDLE_TIMEOUT_COUNT : 0 QUERY_TIMEOUT_COUNT : 10 FETCH_TIMEOUT_COUNT : 0 UTRANS_TIMEOUT_COUNT : 0 SESSION_TERMINATE_COUNT : 0

120 120 / 166 PERFORMANCE VIEW V$STATEMENT 현재연결된세션별로가장최근에실행된구문 (statement) 정보 LONG RUN QUERY 확인 time 정보를수집하기위해서는 TIMED_STATISTICS=1로설정 time 정보는 microsec 단위 칼럼정보 칼럼 ID statement ID SESSION_ID 세션 ID TX_ID 해당 SQL이속해있는 TRANSACTION ID QUERY 실제 SQL 문장 (16Kbyte까지만표현 ) TOTAL_TIME SQL이최종수행된시점의전체소요시간 설명 EXECUTE_TIME FETCH_TIME PARSE_TIME VALIDATE_TIME SQL 이 DBMS 내부에서처리된순수소요시간 (SELECT 의경우첫번째 FETCH 가일어나지전까지수행된시간 ) 최종 SQL 이데이터베이스와프로그램간발생한통신의누적소요시간 parse 하는데소요된시간 validation 체크하는데소요된시간

121 PERFORMANCE VIEW 칼럼정보 칼럼 설명 EXECUTE_SUCCESS 동일한 SQL 이성공적으로수행된누적횟수 ( 동일세션에서누적치 ) PROCESS_ROW EVENT WAIT_TIME SECOND_IN_TIME INSERT/UPDATE/DELETE/MOVE 문으로처리된레코드수대기이벤트명대기로인해소모된시간을의미하며 millisecond 단위대기로인해소모된시간을의미하며 second단위 sample SQL 전체 statement 개수 isql> SELECT COUNT(*) stmt_cnt FROM V$STATEMENT; 쿼리정보 isql> ALTER SYSTEM SET TIMED_STATISTICS=1; isql> SELECT session_id, id stmt_id, tx_id, 2 (parse_time+validate_time+optimize_time) prepare_time, fetch_time, execute_time, 3 total_time, execute_flag, 4 DECODE(last_query_start_time, 0, '-', TO_CHAR(TO_DATE(' ', 'yyyymmddhh') 5 + last_query_start_time / (24*60*60), 'mm/dd hh:mi:ss')) 6 last_start_time, NVL(LTRIM(query), 'NONE') query 7 FROM V$STATEMENT 8 ORDER BY execute_time DESC ; 121 / 166

122 122 / 166 PERFORMANCE VIEW V$LOCK 모든테이블에대한 lock 노드정보 칼럼정보 칼럼 LOCK_ITEM_TYPE TBS_ID TABLE_OID TRANS_ID LOCK_DESC 설명 LOCK이획득된대상의종류 (TBL, TBS, DBF) LOCK이획득된대상이속한테이블스페이스 ID LOCK이획득된테이블의 OID TRANSACTION ID LOCK 유형 (X_LOCK, IX_LOCK, IS_LOCK) IS_GRANT 테이블 level 의 LOCK 을획득했는지여부 (1: 획득 0: 대기 )

123 123 / 166 PERFORMANCE VIEW V$LOCK_WAIT TRANSACTION 간의 lock 대기정보 칼럼정보 칼럼 설명 TRANS_ID WAIT_FOR_TRANS_ID TRANSACTION 의고유번호 TRANS_ID 가대기하고하는 TRANSACTION 의고유번호

124 124 / 166 PERFORMANCE VIEW V$TRANCSACTION 현재수행중인모든 TRANSACTION 정보 주로 V$LOCK, V$MEMGC등다른뷰와조인해서사용 칼럼정보 칼럼 설명 ID SESSION_ID STATUS LOG_TYPE FIRST_UPDATE_TIME DDL_FLAG FIRST_UNDO_NEXT_LSN_FILENO UPDATE_SIZE MEMORY_VIEW_SCN TRANSACTION ID 세션 ID 0: BEGIN, 1: PRECOMMIT, 2: COMMIT_IN_MEMORY, 3: COMMIT, 4: ABORT, 5: BLOCKED, 6: END 0: 일반, 1: 이중화관련 최초변경이일어난시각 TO_CHAR(TO_DATE(' ','YYYYMMDDHH') + first_update_time / (60*60*24), 'MM/DD HH:MI:SS')) 0: non-ddl, 1: DDL TRANSACTION 이처음기록한로그의파일번호 UPDATE 시작성된로그의크기 LOCK_ESCALATION_MEMORY_SIZE 설정값보다크면 in-place MVCC 로동작 메모리테이블에대해열려있는커서의 view SCN 중가장작은값

125 125 / 166 PERFORMANCE VIEW sample SQL lock 잡고있는 SQL 확인 isql> SELECT tx.id TX_ID, lw.wait_for_trans_id BLOCKED_TX_ID, l.lock_desc, 2 DECODE(tx.log_type, 0, st.db_username, 'REPLICATION') USER_NAME, 3 DECODE(tx.first_update_time, 0, '0', to_char(to_date(' ','yyyymmddhh') 4 + tx.first_update_time / (60*60*24), 'MM/DD HH:MI:SS')) FIRST_UPDATE_TIME, 5 DECODE(tx.status, 0, 'BEGIN', 1, 'PRECOMMIT', 2, 'COMMIT_IN_MEMORY',3, 'COMMIT', 6 4, 'ABORT', 5, 'BLOCKED', 6, 'END') STATUS, st.query current_query 7 FROM V$TRANSACTION tx, V$LOCK l LEFT OUTER JOIN V$LOCK_WAIT lw ON l.trans_id = lw.trans_id 8 LEFT OUTER JOIN (SELECT st.query,tx_id, ss.db_username 9 FROM V$STATEMENT st, V$SESSION ss 10 WHERE ss.id = st.session_id ) st 11 ON l.trans_id = st.tx_id 12 WHERE tx.id = l.trans_id; TX_ID : BLOCKED_TX_ID : LOCK_DESC : IX_LOCK USER_NAME : SYS FIRST_UPDATE_TIME : 09/02 14:42:35 STATUS : BEGIN CURRENT_QUERY : update t1 set c1=1 where c1 between 1.11 and TX_ID : 4288 BLOCKED_TX_ID : LOCK_DESC : IX_LOCK FIRST_UPDATE_TIME : 0 STATUS : BLOCKED CURRENT_QUERY : update t1 set c1=1 where c1 =1.11

126 126 / 166 PERFORMANCE VIEW V$SERVICE_THREAD service thread 정보 칼럼정보 칼럼 설명 TYPE STATE RUN_MODE SESSION_ID STATEMEMT_ID TASK_COUNT REDAY_TASK_COUNT service thread 접속방법 SOCKET: TCP 혹은 Unix Domain 방식 IPC: IPC 방식 service thread 현재상태 NONE: service thread 초기화상태 POLL: service thread 가이벤트를대기하는상태 QUEUE-WAIT: service thread 가 queue 를대기하는상태 EXECUTE: service thread 가 statement 를수행중인상태 service thread 운영모드 SHARED: TCP 로연결된작업을처리 DEDICATED: IPC 로연결된작업을처리 service thread 가수행중인 session ID service thread 가수행중인 statement ID service thread 에할당된 session 개수 Service thread 가요청을처리해주기를대기하고있는 session 수

127 PERFORMANCE VIEW sample SQL service thread 의상태확인 isql> SELECT RPAD(type, 30), state, count(*) 2 FROM V$SERVICE_THREAD 3 GROUP BY type, state; RPAD(TYPE, 30) STATE COUNT SOCKET EXECUTE 1 SOCKET POLL 7 IPC EXECUTE 1 IPC POLL / 166

128 PERFORMANCE VIEW V$MEMGC 메모리 garbage collection 정보확인 aging 할대상증가여부확인 GC가대기하는 TRANSACTION 조회 V$TRANSACTION 과 V$STATEMENT와조인 칼럼정보 칼럼 설명 GC_NAME MINMEMSCNINITX ADD_OID_CNT GC_OID_CNT GC 이름 MEM_LOGICAL_AGER 는인덱스의 old version 을삭제하는 GC MEM_DELTHR 는테이블레코드의 old version 을삭제하는 GC 메모리관련 TRANSACTION 중가장작은 view SCN ALTIBASE 가장오래된 old version 의번호 aging 을위해추가된 OID list 개수 aging 된 OID list 개수 128 / 166

129 PERFORMANCE VIEW sample SQL 메모리 ager 의 gap 증가확인 isql> SELECT gc_name, add_oid_cnt, gc_oid_cnt, add_oid_cnt - gc_oid_cnt gcgap 2 FROM V$MEMGC; GC_NAME ADD_OID_CNT GC_OID_CNT GCGAP MEM_LOGICAL_AGER MEM_DELTHR GC GAP(ADD_OID_CNT - GC_OID_CNT) 값이증가되고있다면, aging 할대상이증가 129 / 166

130 PERFORMANCE VIEW V$LFG 로그파일이미처생성되지못해 TRANSACTION 이로그파일이생성될때까지대기한수확인 칼럼정보 칼럼 설명 CUR_WRITE_LF_NO LF_PREPARE_COUNT LF_PREPARE_WAIT_COUNT END_LSN_FILE_NO END_LSN_OFFSET 기록로그파일번호미리생성한로그파일의수로그스위치시대기한횟수 restart redo가시작될 LSN의파일번호 restart redo가시작될 LSN의오프셋 sample SQL 로그파일이생성되기를기다린수 isql> SELECT lf_prepare_wait_count FROM V$LFG; LF_PREPARE_WAIT_COUNT / 166

131 131 / 166 PERFORMANCE VIEW V$MEM_TABLESPACES 메모리테이블스페이스정보 메모리테이블스페이스의사용량확인 칼럼정보 칼럼 SPACE_ID 테이블스페이스 ID 설명 SPACE_NAME MAXSIZE ALLOC_PAGE_COUNT FREE_PAGE_COUNT 테이블스페이스이름 테이블스페이스최대크기 DECODE(MAXSIZE, 0, ALLOC_PAGE_COUNT*PAGE_SIZE, MAXSIZE) 테이블스페이스의전체페이지개수 테이블스페이스의 free 페이지개수

132 PERFORMANCE VIEW sample SQL 메모리테이블스페이스사용량조회 isql> SELECT space_id, space_name, autoextend_mode, 2 DECODE(maxsize, , 'UNDEFINED', 3 0, alloc_page_count*32/1024, 4 maxsize/1024/1024) 'MAX(M)', 5 alloc_page_count * 32/1024 'TOTAL(M)', 6 (alloc_page_count-free_page_count)*32/1024 'ALLOC(M)', 7 ((alloc_page_count-free_page_count)*32/1024) 8 /DECODE(maxsize, 0, alloc_page_count*32/1024, maxsize/1024/1024) 'USAGE(%)' 9 FROM V$MEM_TABLESPACES; MAX(M) - 메모리테이블스페이스 maxsize 테이블스페이스생성시지정 TOTAL(M) - 메모리테이블스페이스가현재까지할당받은크기 ALLOC(M) - 메모리테이블스페이스가현재까지할당받은페이지중빈페이지를제외한사용공간 USAGE(%) - 메모리테이블스페이스가최대로할당할수있는크기대비사용중인공간에대한백분율 132 / 166

133 133 / 166 PERFORMANCE VIEW V$TABLESPACES 전체테이블스페이스 ( 디스크 / 메모리 ) 정보 칼럼정보 칼럼 ID 테이블스페이스 ID 설명 NAME TYPE STATE SEGMENT_MANAGEMENT TOTAL_PAGE_COUNT ALLOCATE_PAGE_COUNT PAGE_SIZE EXTENT_PAGE_COUNT 테이블스페이스이름 테이블스페이스타입 테이블스페이스상태 테이블스페이스에서세그먼트를생성할때어떤타입으로생성할것인지나타냄 (AUTO, BITMAP, CIRCULAR) 테이블스페이스의전체페이지개수 테이블스페이스에할당된페이지개수 테이블스페이스의페이지크기 extent 의페이지개수

134 134 / 166 PERFORMANCE VIEW V$DATAFILES 디스크테이블스페이스데이터파일정보 데이터파일의사용량확인 칼럼정보 ID NAME SPACEID 칼럼 데이터파일 ID 데이터파일경로와이름 데이터파일이속한테이블스페이스 ID 설명 MAXSIZE INITSIZE NEXTSIZE CURRSIZE AUTOEXTEND STATE 데이터파일생성시지정한 MAXSIZE AUTOEXTEND OFF 이면 0 데이터파일생성시지정한 SIZE 데이터파일생성시지정한 NEXT AUTOEXTEND OFF 이면 0 데이터파일의현재크기 AUTOEXTEND OFF 이면 INITSIZE 와같음 0: OFF, 1: ON 1: 오프라인, 2: 온라인, 4: 백업시작, 8: 백업종료, 128: 삭제 (dropped)

135 PERFORMANCE VIEW sample SQL 디스크테이블스페이스의데이터파일별사용량확인 isql> SELECT b.name tbs_name, a.id 'FILE#', a.name datafile_name, 2 currsize*8/1024 'ALLOC(M)', 3 ROUND(CASE2(a.maxsize=0, currsize, a.maxsize)*8/1024) 'MAX(M)', 4 DECODE(autoextend, 0, 'OFF', 'ON') 'AUTOEXTEND' 5 FROM V$DATAFILES a, 6 V$TABLESPACES b 7 WHERE b.id = a.spaceid 8 ORDER BY b.name, a.id; ALLOC(M) - 데이터파일의현재크기 MAX(M) - 데이터파일이 AUTOEXTEND ON 으로생성되었을경우에확장될수있는최대크기 AUTOEXTEND OFF 로생성되었다면생성시크기 135 / 166

136 136 / 166 PERFORMANCE VIEW V$MEMTBL_INFO 메모리테이블정보 메모리테이블사용량확인 칼럼정보 TABLESPACE_ID 칼럼 테이블스페이스 ID 설명 TABLE_OID FIXED_ALLOC_MEM FIXED_USED_MEM VAR_ALLOC_MEM VAR_USED_MEM UNIQUE_VIOLATION_COUNT UPDATE_RETRY_COUNT DELETE_RETRY_COUNT 테이블식별자 system_.sys_tables_ 와조인하여 table_name 확인 테이블에서할당한고정영역의메모리크기 테이블에서실제사용하고있는고정영역의메모리크기 테이블에서할당한가변영역의메모리크기 테이블에서실제사용하고있는가변영역메모리크기 UNIQUE 제약조건이위반된횟수 UPDATE 시재시도한횟수 DELETE 시재시도한횟수

137 PERFORMANCE VIEW sample SQL 휘발성테이블스페이스와메모리테이블스페이스에속한테이블사용량확인 isql> SELECT a.user_name, b.table_name, d.name tablespace_name, 2 (c.fixed_alloc_mem + c.var_alloc_mem)/(1024*1024) 'ALLOC(M)', 3 (c.fixed_used_mem + c.var_used_mem)/(1024*1024) 'USED(M)', 4 (c.fixed_used_mem + c.var_used_mem)/(c.fixed_alloc_mem + c.var_alloc_mem)*100 5 'EFFICIENCY(%)' 6 FROM SYSTEM_.SYS_USERS_ a, SYSTEM_.SYS_TABLES_ b, V$MEMTBL_INFO c, V$TABLESPACES d 7 WHERE a.user_name <> 'SYSTEM_' 8 AND b.table_type = 'T' 9 AND a.user_id = b.user_id 10 AND b.table_oid = c.table_oid 11 AND b.tbs_id = d.id 12 ORDER BY 4 DESC ; ALLOC(M) - 테이블이할당받은메모리합계 (FIXED_ALLOC_MEM+VAR_ALLOC_MEM) USED(M) - 테이블이할당받은페이지중에서 실제로데이터가적재된페이지 의메모리합계 (FIXED_USED_MEM+VAR_USED_MEM) 예를들어, ALLOC 이 100M 인테이블에전체 DELELE 수행하면 ALLOC 은변함없으나 USED 는 0 에가까움 EFFICIENCY(%) - 테이블이소유한페이지중 실제로데이터가적재된페이지 에대한백분율로공간효율성을나타냄 137 / 166

138 138 / 166 PERFORMANCE VIEW V$DISKTBL_INFO 디스크테이블정보 디스크테이블사용량확인 칼럼정보 TABLESPACE_ID 칼럼 테이블스페이스 ID 설명 TABLE_OID DISK_PAGE_CNT 테이블식별자 system_.sys_tables_ 와조인하여 table_name 확인 테이블에서데이터를갖고있는페이지개수 sample SQL isql> SELECT user_name, a.table_name, d.name tbs_name, 2 ROUND((b.disk_page_cnt*8)/1024) 'ALLOC(M)' 3 FROM SYSTEM_.SYS_TABLES_ a, V$DISKTBL_INFO b, SYSTEM_.SYS_USERS_ c, V$TABLESPACES d 4 WHERE a.table_oid = b.table_oid 5 AND a.user_id = c.user_id 6 AND a.tbs_id=d.id 7 AND c.user_name <> 'SYSTEM_'

139 139 / 166 PERFORMANCE VIEW V$REPSENDER 이중화 sender 정보 이중화 sender가동작중일때만확인가능 칼럼정보 칼럼 설명 REP_NAME STATUS NET_ERROR_FLAG REPL_MODE XSN START_FLAG 이중화이름 sender 의현재상태 0: STOP, 1: RUN, 2: RETRY 네트워크오류여부 0: OK 1: ERROR 이중화가설정된모드 EAGER, LAZY remote 로전송한로그의일련번호 이중화 start 시지정한옵션 NORMAL: 0, QUICK: 1, SYNC: 2, SYNC_ONLY: 3, SYNC RUN : 4, SYNC END: 5, RECOVERY from Replication : 6, OFFLINE: 7

140 PERFORMANCE VIEW V$REPRECEIVER 이중화 receiver 정보 remote SERVER의 sender가 start되면확인가능 칼럼정보 칼럼 설명 REP_NAME APPLY_XSN INSERT_SUCCESS_COUNT INSERT_FAILURE_COUNT UPDATE_SUCCESS_COUNT UPDATE_FAILURE_COUNT DELETE_SUCCESS_COUNT DELETE_FAILURE_COUNT 이중화이름 Receiver가적용중인로그의 SN Receiver가성공적으로적용한 INSERT 로그레코드의수 Receiver가적용에실패한 INSERT 로그레코드의수 Receiver가성공적으로적용한 UPDATE 로그레코드의수 Receiver가적용에실패한 UPDATE 로그레코드의수 Receiver가성공적으로적용한 DELETE 로그레코드의수 Receiver가적용에실패한 DELETE 로그레코드의수 SUCCESS_COUNT, FAILURE_COUNT TIMED_STATISTICS=1 로설정되어있는경우만확인가능 140 / 166

141 141 / 166 PERFORMANCE VIEW V$REPGAP 이중화 sender의작업로그와 local SERVER에생성된최근로그파일간의차이 이중화가정상적으로수행되고있는지, 밀리지는않는지확인할때사용 이중화 sender가동작중일때만확인가능 칼럼정보 칼럼 설명 REP_NAME REP_SN REP_LAST_SN REP_GAP READ_FILE_NO START_FLAG 이중화이름 현재전송중인로그레코드식별번호 마지막로그레코드식별번호 REP_LAST_SN 과 REP_SN 의차이 현재읽고있는로그파일번호 이중화 start 시지정한옵션 NORMAL : 0, QUICK : 1, SYNC: 2, SYNC_ONLY: 3, SYNC RUN : 4, SYNC END: 5, RECOVERY from Replication : 6, OFFLINE : 7, PARALLEL : 8

142 142 / 166 PERFORMANCE VIEW sample SQL Sender 확인 isql> SELECT rep_name, status FROM V$REPSENDER; REP_NAME STATUS REP1 1 status 가 1 이아닐경우이중화는정상적이않음 Receiver 확인 isql> SELECT rep_name FROM V$REPRECEIVER; REP_NAME REP1 데이터가조회되지않을경우 receiver 가정상적이지않음 이중화갭확인 isql> SELECT rep_name, rep_last_sn, rep_sn, rep_last_sn-rep_sn FROM V$REPGAP; REP_NAME REP_LAST_SN REP_SN REP_LAST_SN-REP_SN REP rep_sn 값이 -1 이면원격 SERVER 에이중화를생성하지않음 rep_last_sn-rep_sn 값이증가하는데 rep_sn 값이변하지않으면이중화장애

143 143 / 166 ALTIBASE OPERATION OS CHECK LIST

144 144 / 166 OS CHECK LIST ALTIBASE 프로세스확인 Shell> ps -ef grep "altibase -p" grep -v grep altibase Sep22? 00:00:10 /altibase/altibase_home/bin/altibase -p boot from admin CPU 사용률 Shell> ps -o pcpu -p %CPU 10.1 메모리사용률 Shell> ps -o vsz -p VSZ 디스크사용률 (ex. linux) Shell> df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda % / none % /dev/shm /dev/sdb % /home /dev/sdb % /alti_data /dev/sda % /alti_logs /dev/sda % /opt

145 145 / 166 OS CHECK LIST OS 시스템로그 시스템로그를통해 ALTIBASE 가 OS 에의해종료되었는지확인 운영제제 확인할시스템로그 SUN HP /var/adm/message 파일 /var/adm/syslog/syslog.log 파일 AIX errpt -a LINUX /var/log/message 파일

146 146 / 166 ALTIBASE ADVANCE MONITORING TOOL

147 147 / 166 MONITORING TOOL CONTENTS AMS(ALTIBASE MONITORING SYSTEM) SQUIRREL SQL CLIENT

148 148 / 166 MONITORING TOOL AMS(ALTIBASE MONITORING SYSTEM)

149 AMS(ALTIBASE MONITORING SYSTEM) 지원 OS 및 ALTIBASE 버전 구분지원지원가능 OS 종류 ALTIBASE 버전 Linux 계열 ( Ubuntu, CentOS, Redhat) Linux 계열외 ( HP, AIX, SUN ) A5 ( 버전이상 ) A6 A7 System Resource 모니터링가능 ALTIBASE 모니터링가능 System Resource 모니터링불가 ALTIBASE 모니터링원격가능 Shard Mornitoring 요청시추가가능 특징 Open Source 활용으로상용 S/W 에대한추가비용없음 50 여개의모니터링메트릭스제공으로용도별선별사용 데이터저장소로빠른시계열 (TIME SERIES) 데이터베이스활용으로모니터링대상데이터베이스부하경감 사용자가직접다양한 chart 및 dashboard 구성가능 다운로드 URL : / 166

150 150 / 166 AMS(ALTIBASE MONITORING SYSTEM) AMS HOME DASHBOARD 예시화면 관심 chart 추가및변경가능 Layout 일부변경가능 ( Html 코드삽입 ) 여러대의데이터베이스 SERVER 추가가능

151 151 / 166 AMS(ALTIBASE MONITORING SYSTEM) AMS SYSTEM OVERVIEW DASHBOARD 전체예시화면

152 152 / 166 AMS(ALTIBASE MONITORING SYSTEM) AMS 이중화전체예시화면

153 153 / 166 MONITORING TOOL SQUIRREL SQL CLIENT

154 154 / 166 SQUIRREL SQL CLIENT 시스템요구사항 ALTIBASE : ALTIBASE 6 이상 SQUIRREL : Standard 특징 ALTIBASE 에접속하여 SQUIRREL SQL CLIENT 를사용하기위한 plug-in 공식 plug-in 이아니기때문에별도로사용자가직접다운로드 설치방법 -standard.jar 에서 CLIENT 파일다운로드 Driver 등록후 (Altibase.jar) ALTIBASE 연동가능

155 155 / 166 SQUIRREL SQL CLIENT SQUIRREL OBJECT 화면

156 156 / 166 SQUIRREL SQL CLIENT SQUIRREL SQL 화면

157 157 / 166 ALTIBASE ADVANCE TECHNICAL SUPPORT

158 158 / 166 MONITORING TOOL CONTENTS ALTIBASE WIKIPEDIA ALTIBASE CUSTOMER SERVICE

159 159 / 166 TECHNICAL SUPPORT ALTIBASE WIKIPEDIA

160 ALTIBASE WIKIPEDIA AID SITE ALTIBASE 운영및개발관련정보제공 FAQ TECHNICAL DOCUMENTS URL : aid.altibase.com 160 / 166

161 161 / 166 TECHNICAL SUPPORT ALTIBASE CUSTOMER SERVICE

162 ALTIBASE CUSTOMER SERVICE ALTIBASE 는일관되고신속한기술지원제공. On-Line On-Call On-Remote On-Site Web Support Portal Service Desk CTI Service Desk 1. 기술지원포털 2. 등록된요청에대한엔지니어지정 3. 기술지원및이력관리 1. 기술지원콜센터 (02) 요청에대한전화응대 3. 기술지원및지원이력관리 1. On-Line/On-Call 을통한요청접수 2. 원격지원을위한엔지니어지정 3. 원격지원을위한 URL 접속안내 4. 기술지원및지원이력관리 1. On-Line/On-Call 을통한요청접수 2. 엔지니어지정및현장방문 3. 기술지원및지원이력관리 다운로드서비스 제품 Release Notes Patch Notes Manual White Paper FAQ 제공 긴급상황을대비하여 7 X 24 유지 SID 를획득한고객만이용가능 긴급상황을대비하여 7 X 24 유지 웹브라우저를통하여엔지니어가고객의화면을함께보면서지원 SID 를획득한고객만이용가능 162 / 166

163 163 / 166 ALTIBASE CUSTOMER SERVICE ALTIBASE 는일관되고신속한기술지원제공 Customer Service Desk ALTIBASE Technical Division ALTIBASE R&D Web Portal 분석의뢰 담당개발부서 ALTIBASE 엔지니어 자체분석 전화지원 현장엔지니어요청, 이관 협업 / 공조 Bug? 자체 Feedback 가능부분처리 지사, 파트너엔지니어 Bug 등록및진행

164 164 / 166 ALTIBASE CUSTOMER SERVICE ALTIBASE 기술서비스요청방법 support.altibase.com 에서간단한회원가입 [ 고객서비스 ] -> [SID 등록 ] 에서회사명을검색후해당 SID 추가

165 165 / 166 ALTIBASE CUSTOMER SERVICE ALTIBASE 는일관되고신속한기술지원제공 [ 고객서비스 ] -> [ 기술지원요청 ] -> [ 기술지원요청등록 ] 을통하여기술지원요청

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE ALTIBASE HDB 6.3.1.10.1 Patch Notes 목차 BUG-45710 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG-45730 ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG-45760 ROLLUP/CUBE 절을포함하는질의는 SUBQUERY REMOVAL 변환을수행하지않도록수정합니다....

More information

歯sql_tuning2

歯sql_tuning2 SQL Tuning (2) SQL SQL SQL Tuning ROW(1) ROW(2) ROW(n) update ROW(2) at time 1 & Uncommitted update ROW(2) at time 2 SQLDBA> @ UTLLOCKT WAITING_SESSION TYPE MODE_REQUESTED MODE_HELD LOCK_ID1

More information

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 ALTIBASE HDB 6.5.1.5.10 Patch Notes 목차 BUG-46183 DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG-46249 [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 BUG-46266 [sm]

More information

untitled

untitled (shared) (integrated) (stored) (operational) (data) : (DBMS) :, (database) :DBMS File & Database - : - : ( : ) - : - : - :, - DB - - -DBMScatalog meta-data -DBMS -DBMS - -DBMS concurrency control E-R,

More information

ALTIBASE HDB Patch Notes

ALTIBASE HDB Patch Notes ALTIBASE HDB 6.5.1.5.6 Patch Notes 목차 BUG-45643 암호화컬럼의경우, 이중화환경에서 DDL 수행시 Replication HandShake 가실패하는문제가있어수정하였습니다... 4 BUG-45652 이중화에서 Active Server 와 Standby Server 의 List Partition 테이블의범위조건이다른경우에 Handshake

More information

13주-14주proc.PDF

13주-14주proc.PDF 12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float

More information

슬라이드 1

슬라이드 1 알티베이스의 DBMS 를바라보다! Session1. 오라클의눈으로알티베이스를보다 Session2. ALTIBASE HDB ZETA 소개 (New Feature & Utility) ALTIBASE 교육센터소개 Altibase Corp. 교육컨설팅팀성원준 AGENDA 1. Altibase 교육센터소개 2. Altibase 교육과정소개 Altibase 교육센터소개

More information

Tablespace On-Offline 테이블스페이스 온라인/오프라인

Tablespace On-Offline 테이블스페이스 온라인/오프라인 2018/11/10 12:06 1/2 Tablespace On-Offline 테이블스페이스온라인 / 오프라인 목차 Tablespace On-Offline 테이블스페이스온라인 / 오프라인... 1 일반테이블스페이스 (TABLESPACE)... 1 일반테이블스페이스생성하기... 1 테이블스페이스조회하기... 1 테이블스페이스에데이터파일 (DATA FILE) 추가

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Reasons for Poor Performance Programs 60% Design 20% System 2.5% Database 17.5% Source: ORACLE Performance Tuning 1 SMS TOOL DBA Monitoring TOOL Administration TOOL Performance Insight Backup SQL TUNING

More information

DBMS & SQL Server Installation Database Laboratory

DBMS & SQL Server Installation Database Laboratory DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.

More information

MS-SQL SERVER 대비 기능

MS-SQL SERVER 대비 기능 Business! ORACLE MS - SQL ORACLE MS - SQL Clustering A-Z A-F G-L M-R S-Z T-Z Microsoft EE : Works for benchmarks only CREATE VIEW Customers AS SELECT * FROM Server1.TableOwner.Customers_33 UNION ALL SELECT

More information

6주차.key

6주차.key 6, Process concept A program in execution Program code PCB (process control block) Program counter, registers, etc. Stack Heap Data section => global variable Process in memory Process state New Running

More information

Jerry Held

Jerry Held ,, - - - : DELETE : ROW (ROWID) row ROWID : I/O Full Table Scan I/O Index Scan ROWID I/O Fast Full Index Scan scan scan scan I/O scan scan Unique, nonunique. (Concatenated Index) B* Tree Bitmap Reverse

More information

Microsoft PowerPoint - Oracle Data Access Pattern.ppt

Microsoft PowerPoint - Oracle Data Access Pattern.ppt Special Key Note Oracle Data Access Pattern ( 주 ) 오픈메이드컨설팅 오동규수석컨설턴트 1 What is Data Access Pattern? > 데이터를 I/O 하는방식 Index Scan Full Table Scan Rowid 2 Why is The Pattern Important? >SQL 의성능을좌지우지함. >SQL

More information

,, - - - : DELETE : ROW (ROWID) row ROWID : I/O Full Table Scan scan I/O scan Index Scan ROWID scan I/O Fast Full Index Scan scan scan I/O Unique, nonunique. (Concatenated Index) B* Tree Bitmap Reverse

More information

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins Project 1-3: Implementing DML Due: 2015/11/11 (Wed), 11:59 PM 이번프로젝트의목표는프로젝트 1-1 및프로젝트 1-2에서구현한프로그램에기능을추가하여간단한 DML을처리할수있도록하는것이다. 구현한프로그램은 3개의 DML 구문 (insert, delete, select) 을처리할수있어야한다. 테이블데이터는파일에저장되어프로그램이종료되어도사라지지않아야한다.

More information

ETL_project_best_practice1.ppt

ETL_project_best_practice1.ppt ETL ETL Data,., Data Warehouse DataData Warehouse ETL tool/system: ETL, ETL Process Data Warehouse Platform Database, Access Method Data Source Data Operational Data Near Real-Time Data Modeling Refresh/Replication

More information

Oracle Database 10g: Self-Managing Database DB TSC

Oracle Database 10g: Self-Managing Database DB TSC Oracle Database 10g: Self-Managing Database DB TSC Agenda Overview System Resource Application & SQL Storage Space Backup & Recovery ½ Cost ? 6% 12 % 6% 6% 55% : IOUG 2001 DBA Survey ? 6% & 12 % 6% 6%

More information

ALTIBASE HDB Patch Notes

ALTIBASE HDB Patch Notes ALTIBASE HDB 6.3.1.10.6 Patch Notes 목차 BUG-45060 offline replication start 와 replication drop 을동시에수행하는경우, replication start 가완료되지않았으면 replication drop 을수행하지못하도록수정하였습니다... 4 BUG-46193 메모리테이블의이중화병렬 sync

More information

Microsoft Word - SQL튜닝_실습교재_.doc

Microsoft Word - SQL튜닝_실습교재_.doc * 실습환경 * 1. 오라클데이터베이스의튜닝실습을하기위해서는기본적인테이블과데이터가필요합니다. 다음과같은절차에의해환경설정을하십시오. 1) 강사가제공하는 Export 된파일 (scott.dmp) 을자신의 ORACLE 경로에저장하십시오. [C: ] cd C: ORACLE ORA92 BIN [C: ] dir scott.dmp scott.dmp 2) SYSTEM 사용자로접속하여

More information

PowerPoint Presentation

PowerPoint Presentation FORENSIC INSIGHT; DIGITAL FORENSICS COMMUNITY IN KOREA SQL Server Forensic AhnLab A-FIRST Rea10ne unused6@gmail.com Choi Jinwon Contents 1. SQL Server Forensic 2. SQL Server Artifacts 3. Database Files

More information

결과보고서

결과보고서 오픈 소스 데이터베이스 시스템을 이용한 플래시 메모리 SSD 기반의 질의 최적화 기법 연구 A Study on Flash-based Query Optimizing in PostgreSQL 황다솜 1) ㆍ안미진 1) ㆍ이혜지 1) ㆍ김지민 2) ㆍ정세희 2) ㆍ이임경 3) ㆍ차시언 3) 성균관대학교 정보통신대학 1) ㆍ시흥매화고등학교 2) ㆍ용화여자고등학교 3)

More information

단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT

단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT Study Room Doc.03 : SQLD 예상문제 ( 단답형 ) 네이버 Cafe : 데이터베이스전문가포럼 Study Room http://cafe.naver.com/sqlpd SQLD 26,25,24,21 회기출문제를바탕으로작성 작성자 : 월야루 도움 : 빙수민외카페댓글 2017-11-30 단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL

More information

5장 SQL 언어 Part II

5장 SQL 언어 Part II 5 장 SQL 언어 Part II 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 1 / 26 데이터조작문 데이터검색 : SELECT 문데이터추가 : INSERT 문데이터수정 : UPDATE 문데이터삭제 : DELETE 문 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 2 / 26 SELECT

More information

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx Basic Idea of External Sorting run 1 run 2 run 3 run 4 run 5 run 6 750 records 750 records 750 records 750 records 750 records 750 records run 1 run 2 run 3 1500 records 1500 records 1500 records run 1

More information

SQL Tuning Business Development DB

SQL Tuning Business Development DB SQL Tuning Business Development DB Oracle Optimizer 4.1 Optimizer SQL SQL.. SQL Optimizer :.. Rule-Based Optimization (RBO), Cost-Based Optimization (CBO) SQL Optimizer SQL Query Parser Dictionary Rule-Based

More information

PowerPoint Presentation

PowerPoint Presentation Server I/O utilization System I/O utilization V$FILESTAT V$DATAFILE Data files Statspack Performance tools TABLESPACE FILE_NAME PHYRDS PHYBLKRD READTIM PHYWRTS PHYBLKWRT WRITETIM ------------- -----------------------

More information

untitled

untitled PowerBuilder 連 Microsoft SQL Server database PB10.0 PB9.0 若 Microsoft SQL Server 料 database Profile MSS 料 (Microsoft SQL Server database interface) 行了 PB10.0 了 Sybase 不 Microsoft 料 了 SQL Server 料 PB10.0

More information

강의 개요

강의 개요 DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE

More information

Microsoft PowerPoint - 10Àå.ppt

Microsoft PowerPoint - 10Àå.ppt 10 장. DB 서버구축및운영 DBMS 의개념과용어를익힌다. 간단한 SQL 문법을학습한다. MySQL 서버를설치 / 운영한다. 관련용어 데이터 : 자료 테이블 : 데이터를표형식으로표현 레코드 : 테이블의행 필드또는컬럼 : 테이블의열 필드명 : 각필드의이름 데이터타입 : 각필드에입력할값의형식 학번이름주소연락처 관련용어 DB : 테이블의집합 DBMS : DB 들을관리하는소프트웨어

More information

Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER

Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUERY 을실행하게된다면 BLOCK I/O 가많이발생하게된다. 이런이유로 QUERY 의성능은좋지못할것이다.

More information

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O Orange for ORACLE V4.0 Installation Guide ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE...1 1....2 1.1...2 1.2...2 1.2.1...2 1.2.2 (Online Upgrade)...11 1.3 ORANGE CONFIGURATION ADMIN...12 1.3.1 Orange Configuration

More information

초보자를 위한 분산 캐시 활용 전략

초보자를 위한 분산 캐시 활용 전략 초보자를위한분산캐시활용전략 강대명 charsyam@naver.com 우리가꿈꾸는서비스 우리가꿈꾸는서비스 우리가꿈꾸는서비스 우리가꿈꾸는서비스 그러나현실은? 서비스에필요한것은? 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 적절한기능 서비스안정성 트위터에매일고래만보이면? 트위터에매일고래만보이면?

More information

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터 Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터를사용자에게전송하게되며 Parsing 단계에서실행계획이생성된다. Bind 변수를사용하는 SQL

More information

MySQL-.. 1

MySQL-.. 1 MySQL- 기초 1 Jinseog Kim Dongguk University jinseog.kim@gmail.com 2017-08-25 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 1 / 18 SQL의 기초 SQL은 아래의 용도로 구성됨 데이터정의 언어(Data definition

More information

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL 다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 9 장인덱스를배웁니다 1 1. 인덱스란무엇인가? 2 - ROWID ( 주소 ) 조회하기 SCOTT>SELECT ROWID, empno, ename 2 FROM emp 3 WHERE empno=7902 ; ROWID EMPNO ENAME --------------------------------- ----------

More information

ALTIBASE 사용자가이드 Templete

ALTIBASE 사용자가이드 Templete Real Alternative DBMS ALTIBASE, Since 1999 ALTIBASE STARTUP/STOP 과정의이해 2010. 05 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved. Document Control Change Record Date Author Change Reference

More information

ALTIBASE HDB Patch Notes

ALTIBASE HDB Patch Notes ALTIBASE HDB 5.3.3.93 Patch Notes Table of Contents BUG-27950 ALL PRIVILEGES 권한을가진계정이다른계정의테이블에 Foreign Key 를 생성하지못한다. 3 BUG-38105 PASSWORD_LIFE_TIME 경과후유예기간 (PASSWORD_GRACE_TIME) 내에 접속을시도할경우알림메시지를발생해야한다.

More information

OPCTalk for Hitachi Ethernet 1 2. Path. DCOMwindow NT/2000 network server. Winsock update win95. . . 3 Excel CSV. Update Background Thread Client Command Queue Size Client Dynamic Scan Block Block

More information

목 차

목      차 Oracle 9i Admim 1. Oracle RDBMS 1.1 (System Global Area:SGA) 1.1.1 (Shared Pool) 1.1.2 (Database Buffer Cache) 1.1.3 (Redo Log Buffer) 1.1.4 Java Pool Large Pool 1.2 Program Global Area (PGA) 1.3 Oracle

More information

[Brochure] KOR_TunA

[Brochure] KOR_TunA LG CNS LG CNS APM (TunA) LG CNS APM (TunA) 어플리케이션의 성능 개선을 위한 직관적이고 심플한 APM 솔루션 APM 이란? Application Performance Management 란? 사용자 관점 그리고 비즈니스 관점에서 실제 서비스되고 있는 어플리케이션의 성능 관리 체계입니다. 이를 위해서는 신속한 장애 지점 파악 /

More information

Altibase Administrator's Manual

Altibase Administrator's Manual ALTIBASE HDB Administration Performance Tuning Guide Release 6.3.1 (August 19, 2015) ----------------------------------------------------------- ALTIBASE Administration Performance Tunning Guide Release

More information

Altibase Administrator's Manual

Altibase Administrator's Manual ALTIBASE HDB TM Administration Performance Tuning Guide Release 6.5.1 (January 2, 2017) ------------------ ALTIBASE Administration Performance Tunning Guide Release 6.5.1 Copyright c 2001~2017 ALTIBASE

More information

10.ppt

10.ppt : SQL. SQL Plus. JDBC. SQL >> SQL create table : CREATE TABLE ( ( ), ( ),.. ) SQL >> SQL create table : id username dept birth email id username dept birth email CREATE TABLE member ( id NUMBER NOT NULL

More information

NoSQL

NoSQL MongoDB Daum Communications NoSQL Using Java Java VM, GC Low Scalability Using C Write speed Auto Sharding High Scalability Using Erlang Read/Update MapReduce R/U MR Cassandra Good Very Good MongoDB Good

More information

62

62 2 instance database physical storage 2 1 62 63 tablespace datafiles 2 2 64 1 2 logical view control files datafiles redo log files 65 2 3 9i OMF Oracle Managed Files, OMF 9i 9i / / OMF 9i 66 8 1MB 8 10MB

More information

TITLE

TITLE CSED421 Database Systems Lab MySQL Basic Syntax SQL DML & DDL Data Manipulation Language SELECT UPDATE DELETE INSERT INTO Data Definition Language CREATE DATABASE ALTER DATABASE CREATE TABLE ALTER TABLE

More information

Simplify your Job Automatic Storage Management DB TSC

Simplify your Job Automatic Storage Management DB TSC Simplify your Job Automatic Storage Management DB TSC 1. DBA Challenges 2. ASM Disk group 3. Mirroring/Striping/Rebalancing 4. Traditional vs. ASM 5. ASM administration 6. ASM Summary Capacity in Terabytes

More information

PowerPoint Presentation

PowerPoint Presentation FORENSICINSIGHT SEMINAR SQLite Recovery zurum herosdfrc@google.co.kr Contents 1. SQLite! 2. SQLite 구조 3. 레코드의삭제 4. 삭제된영역추적 5. 레코드복원기법 forensicinsight.org Page 2 / 22 SQLite! - What is.. - and why? forensicinsight.org

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

문서 템플릿

문서 템플릿 HDSI 툴분석 [sql injection 기술명세서 ] Sql injection 기술명세서 Ver. 0.01 이문서는 sql injection 기술명세가범위입니다. Copyrights Copyright 2009 by CanvasTeam@SpeeDroot( 장경칩 ) All Rights Reserved. 장경칩의사전승인없이본내용의전부또는일부에대한복사, 전재,

More information

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역 WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역시쉽게해결할수있다. 이번화이트페이퍼에서는 Window Function 중순위 RANK, ROW_NUMBER,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 MySQL - 명령어 1. 데이터베이스관련명령 2. 데이터베이스테이블관련명령 3. SQL 명령의일괄실행 4. 레코드관련명령 5. 데이터베이스백업및복원명령 1. 데이터베이스관련명령 데이터베이스접속명령 데이터베이스접속명령 mysql -u계정 -p비밀번호데이터베이스명 C: > mysql -ukdhong p1234 kdhong_db 데이터베이스생성명령 데이터베이스생성명령

More information

슬라이드 1

슬라이드 1 Tadpole for DB 1. 도구개요 2. 설치및실행 4. 활용예제 1. 도구개요 도구명 소개 Tadpole for DB Tools (sites.google.com/site/tadpolefordb/) 웹기반의데이터베이스를관리하는도구 Database 스키마및데이터관리 라이선스 LGPL (Lesser General Public License) 특징 주요기능

More information

1217 WebTrafMon II

1217 WebTrafMon II (1/28) (2/28) (10 Mbps ) Video, Audio. (3/28) 10 ~ 15 ( : telnet, ftp ),, (4/28) UDP/TCP (5/28) centralized environment packet header information analysis network traffic data, capture presentation network

More information

ALTIBASE XDB Release Note APRIL 22, 2014

ALTIBASE XDB Release Note APRIL 22, 2014 6.1.3 Release Note APRIL 22, 2014 목차 목차... 2 1. 시스템요구사항... 3 2. 릴리스정보... 4 2.1 6.1.3의주요기능... 4 2.2 변경사항... 8 데이터베이스버전... 8 호환성... 8 프로퍼티... 8 성능뷰... 8 에러메시지... 8 2.3 패키지... 9 2.4 다운로드... 10 위치... 10 설치...

More information

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r -------------------------------------------------------------------- -- 1. : ts_cre_bonsa.sql -- 2. :

More information

SQL Server 에서 SQL 튜닝시알아야할힌트와사용 방법 엑셈컨설팅본부 /DB 컨설팅팀박성호 Optimizer 가 SQL 을해석할때항상최적의실행계획을생성하지는못한다. 복잡한 SQL 일수록최적의실행계획을생성하기위해고려해야할대상 (Table, Index 가많은경우 )

SQL Server 에서 SQL 튜닝시알아야할힌트와사용 방법 엑셈컨설팅본부 /DB 컨설팅팀박성호 Optimizer 가 SQL 을해석할때항상최적의실행계획을생성하지는못한다. 복잡한 SQL 일수록최적의실행계획을생성하기위해고려해야할대상 (Table, Index 가많은경우 ) SQL Server 에서 SQL 튜닝시알아야할힌트와사용 방법 엑셈컨설팅본부 /DB 컨설팅팀박성호 Optimizer 가 SQL 을해석할때항상최적의실행계획을생성하지는못한다. 복잡한 SQL 일수록최적의실행계획을생성하기위해고려해야할대상 (Table, Index 가많은경우 ) 이많기때문에, 실행계획생성시 SQL 의 Cost 를잘못계산하여최적의실행계획을세우지못하는경우가발생한다.

More information

PRO1_09E [읽기 전용]

PRO1_09E [읽기 전용] Siemens AG 1999 All rights reserved File: PRO1_09E1 Information and - ( ) 2 3 4 5 Monitor/Modify Variables" 6 7 8 9 10 11 CPU 12 Stop 13 (Forcing) 14 (1) 15 (2) 16 : 17 : Stop 18 : 19 : (Forcing) 20 :

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Spider For MySQL 실전사용기 피망플러스유닛최윤묵 Spider For MySQL Data Sharding By Spider Storage Engine http://spiderformysql.com/ 성능 8 만 / 분 X 4 대 32 만 / 분 많은 DB 중에왜 spider 를? Source: 클라우드컴퓨팅구 선택의기로 Consistency RDBMS

More information

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600 균형이진탐색트리 -VL Tree delson, Velskii, Landis에의해 1962년에제안됨 VL trees are balanced n VL Tree is a binary search tree such that for every internal node v of T, the heights of the children of v can differ by at

More information

MySQL-Ch10

MySQL-Ch10 10 Chapter.,,.,, MySQL. MySQL mysqld MySQL.,. MySQL. MySQL....,.,..,,.,. UNIX, MySQL. mysqladm mysqlgrp. MySQL 608 MySQL(2/e) Chapter 10 MySQL. 10.1 (,, ). UNIX MySQL, /usr/local/mysql/var, /usr/local/mysql/data,

More information

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770> i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,

More information

ePapyrus PDF Document

ePapyrus PDF Document Goodus 기술노트 [38 회 ] Author 윤병길, 이은정 Creation Date 2009-02-27 Last Updated Version 1.0 Copyright(C) 2004 Goodus Inc. All Rights Reserved Version 변경일자변경자 ( 작성자 ) 주요내용 1 2009-02-27 윤병길, 이은정문서최초작성 Contents

More information

The Self-Managing Database : Automatic Health Monitoring and Alerting

The Self-Managing Database : Automatic Health Monitoring and Alerting The Self-Managing Database : Automatic Health Monitoring and Alerting Agenda Oracle 10g Enterpirse Manager Oracle 10g 3 rd Party PL/SQL API Summary (Self-Managing Database) ? 6% 6% 12% 55% 6% Source: IOUG

More information

PRO1_02E [읽기 전용]

PRO1_02E [읽기 전용] Siemens AG 1999 All rights reserved File: PRO1_02E1 Information and 2 STEP 7 3 4 5 6 STEP 7 7 / 8 9 10 S7 11 IS7 12 STEP 7 13 STEP 7 14 15 : 16 : S7 17 : S7 18 : CPU 19 1 OB1 FB21 I10 I11 Q40 Siemens AG

More information

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL 다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 4 장 JOIN 을배웁니다 1 2 1. Cartesian Product ( 카티션곱, CROSS Join) - Oracle Join 문법 SQL> SELECT e.ename, d.dname 2 FROM emp e, dept d ; - ANSI Join 문법 SQL> SELECT e.ename, d.dname

More information

3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT

3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT 3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT NOT NULL, FOREIGN KEY (parent_id) REFERENCES Comments(comment_id)

More information

最即時的Sybase ASE Server資料庫診斷工具

最即時的Sybase ASE Server資料庫診斷工具 TOAD 9.5 Toad Oracle 料 SQL 料 行 理 SQLprofile Quest Software 了 Oracle -Toad Tools of Oracle Application Developers Toad 了 DBA DBA 理 易 度 Toad 料 SQL PL/SQL Toad Oracle PL/SQL Toad Schema Browser Schema Browser

More information

PRO1_04E [읽기 전용]

PRO1_04E [읽기 전용] Siemens AG 1999 All rights reserved File: PRO1_04E1 Information and S7-300 2 S7-400 3 EPROM / 4 5 6 HW Config 7 8 9 CPU 10 CPU : 11 CPU : 12 CPU : 13 CPU : / 14 CPU : 15 CPU : / 16 HW 17 HW PG 18 SIMATIC

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

제품소개

제품소개 Hybrid MM DBMS ALTIBASE 4 4 Technical Features : Part I Storage Manager ( 주 ) 알티베이스김성진 sjkim@altibase.com -2- CONTENTS 1. Problems & Goals 2. SM Architecture 3. Concurrency Control 4. TableSpace 5. Layers

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

SKINFOSEC-CHR-028-ASP Mssql Cookie Sql Injection Tool 분석 보고서.doc

SKINFOSEC-CHR-028-ASP Mssql Cookie Sql Injection Tool 분석 보고서.doc Asp Mssql Sql Injection Tool 분석보고서 이재곤 (x0saver@gmail.com) SK Infosec Co., Inc MSS 사업본부 / 침해대응센터모의해킹파트 Table of Contents 1. 개요... 3 2. 구성... 3 3. 분석... 4 3.1. 기능분석... 4 4. 공격원리...14 4.1 기본공격원리...14 4.2

More information

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL 다양핚예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 10 장 view 를배웁니다 1 - View 란가상의테이블이다! 2 1. 단순 View (Simple View) SCOTT>CONN / AS SYSDBA; SYS>GRANT CREATE VIEW TO scott ; CREATE [OR REPLACE] [ FORCE NOFORCE] VIEW view

More information

제목을 입력하세요.

제목을 입력하세요. 1. 4 1.1. SQLGate for Oracle? 4 1.2. 4 1.3. 5 1.4. 7 2. SQLGate for Oracle 9 2.1. 9 2.2. 10 2.3. 10 2.4. 13 3. SQLGate for Oracle 15 3.1. Connection 15 Connect 15 Multi Connect 17 Disconnect 18 3.2. Query

More information

Backup Exec

Backup Exec (sjin.kim@veritas.com) www.veritas veritas.co..co.kr ? 24 X 7 X 365 Global Data Access.. 100% Storage Used Terabytes 9 8 7 6 5 4 3 2 1 0 2000 2001 2002 2003 IDC (TB) 93%. 199693,000 TB 2000831,000 TB.

More information

Contents Data Mart 1. 개요 실습방향 테스트위한사전설정 본격실습시작 ) 데이터파일 dd 명령어로 백업수행및유실시키기 ) 장애복구수행 결론...7 페이지 2 / 7

Contents Data Mart 1. 개요 실습방향 테스트위한사전설정 본격실습시작 ) 데이터파일 dd 명령어로 백업수행및유실시키기 ) 장애복구수행 결론...7 페이지 2 / 7 ( 참 ) 본상단부머리말에있는 Data Mart 는본문서작성자의블로그이름입니다 dd 명령어를 이용한백업수행 최소개념이해 본문서의 pdf 문서는다음 URL 참조 http://mindata.tistory.com/55 Version 변경일자 ( 작성일자 ) 변경자 ( 작성자 ) 주요내용 1 2013.4.3 김민기 최초작성 2 3 페이지 1 / 7 Contents

More information

SQL

SQL 데이터베이스및 SQL 언어의기초 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 1 / 36 Part I 데이터베이스 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 2 / 36 데이터의구성및표현 개체 (entity): DB가표현하려는유형 / 무형적정보의대상속성 (attribute): 개체가갖는특성도메인

More information

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager are trademarks or registered trademarks of Ari System, Inc. 1 Table of Contents Chapter1

More information

Microsoft PowerPoint - 27.pptx

Microsoft PowerPoint - 27.pptx 이산수학 () n-항관계 (n-ary Relations) 2011년봄학기 강원대학교컴퓨터과학전공문양세 n-ary Relations (n-항관계 ) An n-ary relation R on sets A 1,,A n, written R:A 1,,A n, is a subset R A 1 A n. (A 1,,A n 에대한 n- 항관계 R 은 A 1 A n 의부분집합이다.)

More information

Commit_Wait / Commit_Logging 두파라미터를통해 Log File Sync 대기시간을감소시킬수있다는것은놀라움과의아함을동시에느낄수있다. 단지파라미터의수정을통해당연히대기해야하는시간을감축한다는것은분명성능을개선해야하는입장에서는놀라운일이될것이다. 반면, 그에따

Commit_Wait / Commit_Logging 두파라미터를통해 Log File Sync 대기시간을감소시킬수있다는것은놀라움과의아함을동시에느낄수있다. 단지파라미터의수정을통해당연히대기해야하는시간을감축한다는것은분명성능을개선해야하는입장에서는놀라운일이될것이다. 반면, 그에따 Commit Wait Class 대기시간감소방안 엑셈컨설팅본부 /DB 컨설팅팀박준연 개요 Wait Class 중 Commit 카테고리에해당하는 Wait Event 에의한대기현상으로 DB 시스템의성능저하현상이발생하는것은종종경험할수있다. 그중대표적인 Wait Event 는 Log File Sync 이다. 실제로대부분의 DB 시스템의 Top 5 Wait Event

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

빅데이터분산컴퓨팅-5-수정

빅데이터분산컴퓨팅-5-수정 Apache Hive 빅데이터분산컴퓨팅 박영택 Apache Hive 개요 Apache Hive 는 MapReduce 기반의 High-level abstraction HiveQL은 SQL-like 언어를사용 Hadoop 클러스터에서 MapReduce 잡을생성함 Facebook 에서데이터웨어하우스를위해개발되었음 현재는오픈소스인 Apache 프로젝트 Hive 유저를위한

More information

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET 135-080 679-4 13 02-3430-1200 1 2 11 2 12 2 2 8 21 Connection 8 22 UniSQLConnection 8 23 8 24 / / 9 3 UniSQL 11 31 OID 11 311 11 312 14 313 16 314 17 32 SET 19 321 20 322 23 323 24 33 GLO 26 331 GLO 26

More information

슬라이드 1

슬라이드 1 [ CRM Fair 2004 ] CRM 1. CRM Trend 2. Customer Single View 3. Marketing Automation 4. ROI Management 5. Conclusion 1. CRM Trend 1. CRM Trend Operational CRM Analytical CRM Sales Mgt. &Prcs. Legacy System

More information

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures 단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct

More information

Oracle9i Real Application Clusters

Oracle9i Real Application Clusters Senior Sales Consultant Oracle Corporation Oracle9i Real Application Clusters Agenda? ? (interconnect) (clusterware) Oracle9i Real Application Clusters computing is a breakthrough technology. The ability

More information

untitled

untitled Memory leak Resource 力 金 3-tier 見 Out of Memory( 不 ) Memory leak( 漏 ) 狀 Application Server Crash 理 Server 狀 Crash 類 JVM 說 例 行說 說 Memory leak Resource Out of Memory Memory leak Out of Memory 不論 Java heap

More information

Observational Determinism for Concurrent Program Security

Observational Determinism for  Concurrent Program Security 웹응용프로그램보안취약성 분석기구현 소프트웨어무결점센터 Workshop 2010. 8. 25 한국항공대학교, 안준선 1 소개 관련연구 Outline Input Validation Vulnerability 연구내용 Abstract Domain for Input Validation Implementation of Vulnerability Analyzer 기존연구

More information

Remote UI Guide

Remote UI Guide Remote UI KOR Remote UI Remote UI PDF Adobe Reader/Adobe Acrobat Reader. Adobe Reader/Adobe Acrobat Reader Adobe Systems Incorporated.. Canon. Remote UI GIF Adobe Systems Incorporated Photoshop. ..........................................................

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

Intra_DW_Ch4.PDF

Intra_DW_Ch4.PDF The Intranet Data Warehouse Richard Tanler Ch4 : Online Analytic Processing: From Data To Information 2000. 4. 14 All rights reserved OLAP OLAP OLAP OLAP OLAP OLAP is a label, rather than a technology

More information

Orcad Capture 9.x

Orcad Capture 9.x OrCAD Capture Workbook (Ver 10.xx) 0 Capture 1 2 3 Capture for window 4.opj ( OrCAD Project file) Design file Programe link file..dsn (OrCAD Design file) Design file..olb (OrCAD Library file) file..upd

More information

Microsoft PowerPoint - Oracle Data Join Method.pptx [읽기 전용]

Microsoft PowerPoint - Oracle Data Join Method.pptx [읽기 전용] Special Key Note Oracle Data Join Method ( 주 ) 오픈메이드컨설팅 오동규수석컨설턴트 1 What is Join? JOIN is Multiply. 2 Why is the Join Method so important? 잘못사용하면큰재앙이따른다.( 위의그림처럼 ) 두개의집합을연결할수있는유일한수단. Join Method 는모든 DBMS

More information

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770> 제 8강 SQL: 관계데이터베이스언어 강의목표 관계데이타베이스언어로서상용 DBMS에서가장널리사용되는 SQL의동작원리에관하여학습하고, 이를이용하여다양한질의문을작성하는방법을습득한다 기대효과 SQL의데이터정의기능을이해한다 SQL의데이터조작기능중질의기능을이해한다 SQL의데이터조작기능중데이터갱신기능을이해한다 SQL의데이터조작기능중뷰및인덱스관련기능을이해한다 SQL 의개요

More information

ALTIBASE 사용자가이드 Templete

ALTIBASE 사용자가이드 Templete Real Alternative DBMS ALTIBASE, Since 1999 ALTIBASE 환경의개발시고려사항가이드 2010. 07 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved. Document Control Change Record Date Author Change Reference 2010-07

More information

Chap7.PDF

Chap7.PDF Chapter 7 The SUN Intranet Data Warehouse: Architecture and Tools All rights reserved 1 Intranet Data Warehouse : Distributed Networking Computing Peer-to-peer Peer-to-peer:,. C/S Microsoft ActiveX DCOM(Distributed

More information

DocsPin_Korean.pages

DocsPin_Korean.pages Unity Localize Script Service, Page 1 Unity Localize Script Service Introduction Application Game. Unity. Google Drive Unity.. Application Game. -? ( ) -? -?.. 준비사항 Google Drive. Google Drive.,.. - Google

More information