작성
·
168
0
1. 메모리
찾으려는 데이터가 메모리에 올라와 있다는 보장이 없다고 하셨는데 그렇다면 반대로 Clustered Index 는 항상 올라와 있는건가요?
아니면 불러와야 하지만 불러올 부분을 정확히 알기 때문에 비효율적인 부분없이 처리한다는 의미인가요?
2. 설명을 들어보면 INDEX 설정할 때 WITH 를 거는게 DML 작업에 부하가 적다고 하셨는데 주로 커버드 인덱스를 활용하시는 이유를 알 수 있을까요?
답변 1
0
Clustered는 LeafPage 자체에 데이터가 있으므로
추가적으로 탐색할 필요가 없습니다.
Non-Clustered는 LeafPage에서 찾은 키값을 들고
다시 데이터를 찾으러 가야 합니다. (북마크 룩업)
LeafPage에서 추가적인 데이터를 남기고
그 추가 데이터로 인해 불필요한 탐색을 줄일 수 있는데
이럴 때 Covered Index가 유용합니다.
ShipVia를 따로 안 남긴 상태에서 ShipVia = 3인 애들을 찾으려면,
LeafPage의 키값을 얻은 다음 굳이 북마크 룩업을 통해
데이터를 찾으러 가고, 데이터를 조회해본 다음에서야 ShipVia를 비교할 수 있겠죠.