SQL성능에 대한 튜닝에 대해서 알아 볼 것이다.
평소에도 데베 설계를 할때 민감하게 설계 해야한다.
유져수 증가 -> 데베 부하 올라 갈 수 있음
그래서 어떤게 빠르고 느린지는 SQL튜닝을 하면서 성능 분석을 하는 방법을 배워야 한다.
google -> northwind database -> sql에 복붙후 실행
1) DB 살펴보기
EXEC sp_helpdb '테이블 이름';
2) 임시 테이블 만들기
이렇게 만들어주자
3) INDEX 생성
이렇게 하면되는데
지금은 데이터가 적다보니까 우리가 원하는 트리형식으로 안 만들어 질 수도있다.
그래서 옵션 붙이기 가능
4) 인덱스 번호 찾기
이렇게 index번호를 찾고
보면 Test_index는 2번이다.
그리고
인덱스 정보 살펴보면
이렇게 나오는데 여기서 indexLevel이 가장 중요하다.
Root 2번, -> Branch 1번 -> Leaf 0번
트리구조 생각 ㄱㄱ
849(Leverling) 872(Dodsworth) 848(Leverling) 832(Buchanan) 840(Dodsworth) 841(Leverling)
이런구조로 되어있다는 것이다.
HEAP RID([페이지 주소(4)][파일ID(2)] [슬롯번호(2)] 조합한 ROW 식별자. 테이블 정보 추출 )
849(Leverling) 872(Dodsworth) 848(Leverling) 832(Buchanan) 840(Dodsworth) 841(Leverling)
이렇게 되어잇는데
만약 Callahan을 찾으려면
C가 L보다 먼저오니까 849에서 왼쪽으로 내려가고
872보다는 먼저오니까 832로 내려가고
832에서
이렇게 Callahan을 찾아서 HEAP RID를 추출을 해서
TABLE [ {page} {page} {page} {page} {page} ]
실제로 정보가 저장되어있는 페이지에가서 실제 정보를 추출 할 수 있다는 얘기이다.
RANDOM ACCESS (한 건을 읽기위해 한 페이지씩 접근)
BOOKMARK LOOKUP (RID를 통해 행을 찾는다)