본문 바로가기

DB

(3)
OracleDB Call최소화 : ArraySize조절을 통한 Fetch Call 최소화 1. Call통계 ① Parse Call : SQL 처리 루틴 생성 (캐싱 되어 있으면 그것을 사용) ② Execute Call : SQL 실행 요청 ③ Fetch Call : 데이터 전송 요청 ④ Misses in library cashe during parse : 하드파싱 횟수 2. User Call과 Recursive Call ▶ User Call 네트워크를 통해 외부에서 들어오는 Call을 말하며, DBMS입장에서 User Call은 WAS와 API서버를 말함. 동시 접속자 수가 적을 때는 잘 느끼지 못하지만, PeakTime에 시스템 장애를 발생시키는 주범 집합적 사고를 통해 Loop-Query를 해소하고 One-SQL로 구현해서 해소해야 함 Array Processing기능 활용 ▶ Recur..
OracleDB IOT로 MariaDB/MySQL 인덱스 이해하기 SQL튜닝의 핵심은 랜덤액세스의 최소화입니다. 랜덤액세스는 인덱스 스캔을 통해 테이블을 찾아갈 때 발생하는 IO입니다. 인덱스를 사용하더라도 테이블에 접근하는 횟수가 많으면 성능이 저하되며, 어느정도 수치를 넘어서면 인덱스를 사용하는것이 오히려 더 느리다. 이 지점을 인덱스의 손익분기점이라고 할 수 있습니다. DBMS에서도 랜덤IO를 최소화 시키기 위한 몇가지 기능들이 있습니다. 서비스 구조를 파악하여 적절히 사용한다면 충분히 좋은 대안이 될 수 있습니다. 문제는, 이런 기능들을 사용 할 때에는 정확히 알아야 한다는 것입니다. Oracle 기본설정이 Heap 테이블(비IOT)이며, MS-SQL은 테이블 생성 시 기본설정으로 클러스터 테이블로 생성이 됩니다. 테이블 생성 시 이런 기능들을 정확히 모른 채 ..
Oracle Index Skip Scan의 효용성 아래와 같은 쿼리와 트레이스 결과가 있습니다. -- 인덱스 구성 -- IX00_LOG :LOGIN_DT , ITS -- PK_EMP : EMP_NO SELECT L.SEQ , L.WB_TYPE, L.ITS , E.E_NAME, E.DEPE_NO, E.EMP_CODE FROM TB_LOG L , TB_EMP E WHERE 1 = 1 AND L.EMP_NO = E.EMP_NO AND L.LOGIN_DT BETWEEN '20220101' AND '20220131' AND L.ITS = 'CMEA' ; --------------------------------------------------------------------------------------------------------- | Id | Opera..