일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 산술 연산자
- 반복문
- 친절한 SQL 튜닝
- 객체
- 상속
- java
- 연산자
- 객체지향
- SpringSecurity 로그아웃
- SQL 튜닝
- 인텔리제이 Web 애플리케이션
- 비교 연산자
- 논리 연산자
- SQL
- spring 게시판 삭제
- 예약어
- 오버로딩
- 배열
- join
- 자바의정석
- 이클립스 설치
- 친절한 SQL
- 오버라이딩
- 식별자
- 함수
- @PreAuthorize("isAuthenticated()")
- SQL튜닝
- 스프링시큐리티 로그아웃
- StringBuffer
- SpringSecurity 로그인
- Today
- Total
목록SQL 튜닝 (6)
gi_dor
1️⃣ 소트 튜닝 소트는 기본적으로 PGA에 Sort Area에서 이루어진다 PGA : DB에 접속하는 유저에게 할당되는 각각의 서버 프로세스가 독자적으로 사용하는 오라클 메모리 영역 개인공간이라고 생각하면 편함. ◽ Sort Area 공간이 다 차면 디스크 Temp 테이블스페이스를 활용 한다. ◽ Sort Area가 찰 때마다 Temp 영역에 저장해 둘 때 이 중간 단계의 집합을 'Sort Run'이라고 함. ◽ Sort Area의 크기가 'Sort Run'에 있는 크기에 비례하여 한번에 읽어들일 수 있다면 추가적인 Disk I/O는 발생하지 않지만, 그보다 크기가 작다면 여러번 액세스해야 하므로 성능이 나빠짐. Sort Area에서 작업을 완료할수 있는지에 따라 소트를 2가지 유형으로 나눈다 ◾ 메모..
🛵 HASH JOIN NL조인은 인덱스를 이용한 조인 방식이다 , 인덱스 구성에 따라 성능 차이가 심하다 반면 소트머지 조인과 해시조인은 , 조인 과정에서 인덱스를 이용하지 않기 때문에 ' 대량 데이터 조인할때 NL 조인보다 훨씬 빠르고 , 일정한 성능을 보인다' 소트머지 조인은 항상 양쪽 테이블을 정렬 하는 부담이 있다 해시 조인은 그런 부담이 없다 그렇다고 모든 조인을 해시조인으로 처리할수는 없다 1 - 1 기본 메커니즘 해시조인은 소트머지 조인처럼 2단계로 진행된다 Build 단계 : 작은 쪽 테이블을 읽어 해시 테이블(해시 맵)을 생성 Probe 단계 : 큰 쪽 테이블을 읽어 해시 테이블을 탐색하면서 조인한다 해시 조인은 use_hagh 힌트로 유도하는데 사원 테이블 기준 으로 고객 테이블과 조인..
🍺 소트 머지 조인 인덱스가 없어서 정렬 한 뒤에 조인한다. 단점 : 대량이라 공간을 많이 차지함 조인 컬럼에 인덱스가 없을 때 대량의 데이터 조인이어서 인덱스가 효과적이지 않을 때 옵티마이저는 NL조인 대신 소트머지 조인 이나 다음절에서 해시 조인을 선택한다 ❗ 해시 조인을 사용 할수 없는 상황에서 대량 데이터를 조인하고자 할떄 유용함 1 - 1 SGA vs PGA PGA : 개인 사용자 private , 정렬필터 SGA : 공통 , 공유 사용자 Temp : Temp라는 테이블 스페이스 🔑 PGA 는 다른 프로세스와 공유하지 않는 독립적인 메모리 공간인데 같은 양의 데이터를 읽더라도 SGA 버퍼캐시에서 읽을 때 보다 훨씬 빠르다. - 따로 Lock 걸지는 않음 1 - 2 기본 메커니즘 1 ) 소트 단계..
1️⃣ 인덱스 클러스터링 팩터 (Index Clustering Factor) 클러스터링 팩터란? 특정 컬럼을 기준으로 같은 값을 갖는 데이터가 서로 모여있는 정도를 의미 CF가 좋은 컬럼에 생성한 인덱스는 검색 효율이 매우 좋음 1) 좋은 CF의 예 2) 안좋은 CF의 예 CF가 좋은 경우는 매우 드물고 대부분 사진 2번의 경우이다. 2️⃣ 인덱스 손익분기점 인덱스 ROWID를 이용한 테이블 액세스는 고비용 구조이다. 따라서 인덱스는 소량 검색에 유리하다 (일반적으로 5% ~ 20%) 읽어야 할 데이터가 일정량을 넘는 순간, 풀 스캔보다 오히려 느려진다. Index Range Scan이 Table Full Scan보다 느려지는 지점을 "인덱스 손익분기점" 이라고 한다. 3️⃣ 인덱스 컬럼 추가 테이블 액..
1️⃣ 인덱스 구조 및 탐색 1 - 1 미리보는 인덱스 튜닝 인덱스 특징 : 정렬과 위치 데이터를 찾는 2가지 방법 1 ) Full Scan 2 ) Index Scan ◾ 정렬 데이터 ◾ 데이터의 위치 1 - 2 인덱스 튜닝의 두가지 핵심요소 1 ) 인덱스 스캔 과정에서 발생하는 비효율을 줄이기 - 인덱스 스캔 효율화 튜닝 Ex . 시력이 1.0 ~ 1.5인 김튜닝 이라는 학생을 찾을경우 이름과 시력 순으로 정렬 했다면 소량만 스캔하면 되는데 , 시력과 이름 순으로 정렬했다면 많은 양을 스캔 해야한다 2 ) 테이블 액세스 횟수 줄이기 - 랜덤 액세스 최소화 튜닝 인덱스 스캔후 테이블 레코드를 액세스 할 때 랜덤 I/O 방식을 사용 함 ❗ 인덱스의 범위가 중요 하며 , 컬럼의 순서 또한 중요하다 1 - 3..