분류 전체보기94 친절한 SQL 튜닝 - 6장 DML 튜닝 6장 DML 튜닝6.1.1 DML 성능에 영향을 미치는 요소인덱스무결성 제약조건절서브쿼리Redo 로깅Undo 로깅Lock커밋인덱스와 DML성능테이블에 레코드를 입력하면 인덱스에도 입력해야 한다.인덱스는 정렬된 자료구조이므로 수직적 탐색을 통해 입력할 블록을 찾아야하므로 DML 성능에 미치는 영향도 더 크다.INSERT, DELETE는 테이블에서 레코드를 모두 찾아 삽입, 삭제해 줘야 한다. UPDATE할 때는 변경된 컬럼을 참조하는 인덱스만 찾아서 변경해 주면 된다.간단한 100만개 레코드를 만든 테이블에서 인덱스를 1개 추가 할 때마다 8배가 느려진다. 이를 통해 인덱스 하나라도 줄이면 TPS(Transaction Per Second)는 그만큼 향상된다는 것을 의미한다.무결성 제약과 DML 성능PK, .. 2025. 2. 17. 친절한 SQL 튜닝 - 5장 소트 튜닝 5장 소트 튜닝소트할 대상 집합을 SGA 버퍼캐시를 통해 읽어 Sort Area에서 정렬을 시도한다.Sort Area안에서 정렬을 마무리하는 것이 최적이지만, 양이 많을 때는 Temp 테이블 스페이스에 임시 세그먼트를 만들어 저장한다. Sort Area가 찰 때마다 Temp 영역에 저장해 둔 중간 단계의 집합을 Sort Run 이라고 부르며 정렬된 최종 결과집합을 얻으려면 다시 Merge 해야 한다.소트 연산은 메모리 집약적일 뿐 아니라 CPU 집약적이기도 하여 데이터량이 많으면 I/O 까지 발생하여 쿼리 성능을 좌우하는 중요한 요소이다.부분범위 처리를 불가능하게 함으로써 OLTP 환경에서 애플리케이션 성능을 저하시키는 주요인이 되기도 한다.5.1.2 소트 오퍼레이션Sort AggregateSort Ag.. 2025. 2. 16. 버퍼 Lock 버퍼 Lock버퍼 Lock 이란?자신이 현재 그 버퍼를 사용 중임을 버퍼 헤더에 Pin을 설정하여 표시하는 것이다.캐쉬된 버퍼 블록을 읽거나 변경하려는 프로세스는 버퍼 헤더로부터 버퍼 Lock을 획득해야 한다.오라클은 Row Level로 Lock을 제공하여 서로 다른 Row를 변경하는 것은 문제가 되지 않는다.하지만 1개의 블록을 동시에 변경하는 것은 안되어 한 명의 사용자 만이 블록을 변경하고 있다는 것을 보장 받아야 하는데 이 때 획득하는 것이 버퍼 Lock이다.버퍼 Lock 상태Share 모드 Lock버퍼 내용을 읽기만 할 때 사용한다.Exclusive 모드 Lock버퍼 내용을 변경할 때 사용한다.버퍼가 Exclusive 모드로 점유되어 있다면 버퍼 헤더의 Lock 대기자 목록에 등록 후 래치를 해.. 2025. 2. 15. 친절한 SQL 튜닝 - 4장 조인 튜닝 4장 조인 튜닝4.1.1 NL 조인 기본 메커니즘SELECT E.사원명, C.고객명, C.전화번호FROM 사원 E, 고객 CWHERE E.입사일자 >= '19960101'AND C.관리사원번호 = E.사원번호위 테이블에서 1996년 1월 1일 이후 입사한 사원이 관리하는 고객 데이터를 추출하는 데이터를 만들어 보자.가장 쉽게 생각하는 방법은 사원 테이블로부터 1996년 1월 1일 이후 입사한 사원을 찾은 후, 고객 테이블에서 사원번호가 일치하는 레코드를 찾는 것 이것이 Nested Loop 조인이 사용하는 알고리즘이다.아래 수행 구조를 통해 쉽게 이해할 수 있다.for(i=0; ifor outer in 1..100 loop for inner in 1..100 loop dbms_outpu.. 2025. 2. 14. SQLP 2025년 시험일정과 준비 방법 2025년 SQLP 시험일정2025년 SQLP 시험은 52회 원서접수는 종료되었고 53회 회차가 존재합니다.위의 그림처럼 원서 접수는 7.21 ~ 7.25 일이며 시험일은 8.23(토) 이고 합격자 발표는 9.19(금) 입니다.SQLP 자격증이란?SQLP(SQL Professional) 자격증은 한국데이터산업진흥원(K-DATA)에서 주관하는 데이터베이스 전문가 인증 시험으로, 데이터 모델링과 SQL 활용 능력을 검증하는 자격증입니다. SQLP는 SQLD(SQL Developer)보다 한 단계 상위 자격으로, 데이터베이스 설계, 최적화, 성능 튜닝 등의 고급 내용을 다룹니다.또한 SQLP 자격증이 있으면 기업에서 전문가로 인정해주며, 공공기관 및 국가사업 프로젝트를 하는 개발자분들에게도 우대사항이 적용됩니.. 2025. 2. 13. 친절한 SQL 튜닝 - 3장 인덱스 설계 3.4 인덱스 설계온라인 트랜잭션을 처리하는 시스템에서 인덱스 설계의 중요성은 인덱스 튜닝, 더 나아가 SQL 튜닝의 하이라이트라고도 할 수 있다.3.4.1 인덱스 설계가 어려운 이유SQL에 각각 최적화된 인덱스를 마음껏 생성할 수 있다면 인덱스 설계만큼 쉬운 일도 없다. 하지만 인덱스를 많으면 아래와 같은 문제가 발생한다.DML 성능 저하 (TPS 저하)데이터베이스 사이즈 증가데이터베이스 관리 및 운영 비용 상승예를 들어 한 테이블에 인덱스가 여섯 개 달려 있으면, 신규 데이터를 입력할 때마다 여섯 개 인덱스에도 데이터를 입력해야 한다.테이블과 달리 인덱스는 정렬 상태를 유지해야 하므로 수직적 탐색을 통해 입력할 블록부터 찾는다.데이터를 지울 때도 마찬가지이다. 여섯 개 인덱스에서 레코드를 일일이 찾아.. 2025. 2. 12. 이전 1 2 3 4 5 6 ··· 16 다음