일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스 여행경로
- 백준 1516 게임 개발
- SQL SERVER 장비교체
- 백준 1043 거짓말 파이썬
- 프로그래머스 등굣길
- 반도체 설계 파이썬
- 가장 긴 바이토닉 부분 수열 파이썬
- 프로그래머스 가장 긴 팰린드롬
- 램프 파이썬
- 프로그래머스 순위
- 백준 1613 역사
- SQL SERVER MIGRATION
- 베스트앨범 파이썬
- 프로그래머스 베스트앨범
- 백준 2146 다리 만들기
- 백준 1167 트리의 지름 파이썬
- 트리의 지름 파이썬
- SWEA
- 순위 파이썬
- 백준 2352 반도체 설계 파이썬
- 역사 파이썬
- 가장 긴 팰린드롬 파이썬
- 다리 만들기 파이썬
- 프로그래머스 순위 파이썬
- 백준 1034 램프 파이썬
- 백준 11054.가장 긴 바이토닉 부분 수열
- 등굣길 파이썬
- 백준 1238 파티 파이썬
- 게임 개발 파이썬
- 다중 컬럼 NOT IN
- Today
- Total
목록공부/DATABASE (94)
공부, 기록

격리수준 좋지 않은 읽기 방식의 예 Dirty Read, Unrepeatable Read, Phantom Read Dirty Read : 메모리(데이터 캐시)에서는 변경되었지만 페이지(Disk)에선 변경되지 않은 데이터를 읽는것 ex)상대방이 입금했다하여 확인을 하였는데 확인 후 상대방이 롤백하여 실제로는 입금되지 않은 상황 -> 방지하기 위해선 READ COMMITTED 이상의 격리수준을 사용한다. Unrepeatable Read(=Non repeatable read) : 트랜잭션 내에서 한 번 읽은 데이터가 트랜잭션이 끝나기 전에 변경되었다면, 다시 읽었을 때 새로운 값이 읽히는 것. Dirty Read 와의 차이점 : 행범위를 제한한다, 공유 잠금이 트랜잭션 끝까지 유지된다. ex) 금액이 500원..

실행계획 : 쿼리를 실행하기 위해 DB엔진의 쿼리 최적화 프로그램이 결정한 가장 효율적인 방법의 출력물 쿼리 처리 과정 구문분석 → 표준화 → 최적화 → 컴파일 → 실행 ※ 최적화 단계에서 통계, 조각정보 등으로 실행 계획을 만든다. 쿼리분석 : 검색제한자, 조인 조건등을 판단 인덱스 선택 : 인덱스의 유무, 통계를 바탕으로 한 유용성 판단 조인 처리 : 조인 방법의 선택, 테이블의 순서 선택 플랜의 재사용을 위해서 메모리에 캐시된다(플랜캐시). 실행계획이 업데이트 되는 경우 (recompile) 재컴파일 : 기존의 실행계획을 사용하지 않고 새로운 실행계획을 만들면서 컴파일 하는 방법 (WITH or OPTION으로 사용 쿼리에서 참조하는 테이블이나 뷰가 변경된 경우(ALTER TABLE 및 ALTER ..
서브쿼리란 메인쿼리안의 또 하나의 쿼리가 있는경우를 서브쿼리라 칭함 TABLE1 : COL1 INT, COL2 INT (약 3만건) TABLE2 : COL1 INT COL2 INT, COL3 DATETIME (약 10만건) 1. SELECT 1-1 SELECT 스칼라 서브쿼리라고도 칭하며 한건의 조회수만 출력되어야 함. 1-2 FROM 일종의 임시 테이블. 메인쿼리의 SELECT는 서브쿼리의 SELECT에 있는 값만 사용 가능. EX) SELECT T1.COL1, SUB.T2C3 --T2.COL2 는 서브쿼리안에서 조회되지 않았기에 사용 불가 FROM ( SELECT T2.COL1 AS T2C1 ,T2.COL3 AS T2C3 FROM TABLE2 AS T2 ) AS SUB JOIN TABLE1 AS T1..

1. Nested Loops Join 한 조인의 입력은 작고 다른 조인의 입력이 큰 경우에 효과적인 방식. TABLE1에서 TABLE2 방향으로 조인이 될 때 TABLE1을 외측 테이블 TABLE2를 내측 테이블이라 칭함. 외측 테이블과 일치하는 모든 행을 내측 테이블에서 반복하여 찾는 방식. 즉 조인횟수는 외측 테이블의 입력에 의해 결정됨. 그렇기 때문에 WHERE절에서 걸리는 필터는 외측테이블에 걸려야 조인의 크기를 줄일 수 있다. 내측 테이블의 조인 조건의 컬럼에 인덱스가 있는 경우 효과적임. 만약 적절한 인덱스가 없다면 매번 전체 테이블을 읽어야 한다. 다른 방식에 비해 메모리 사용량이 가장 적고 외측 테이블을 정렬 후 조인을 할 경우에 더 효율적이다. 외측 테이블에서 내측 테이블에 접근할 때 랜..