SQL Server 2014 에 어떤 새로운 기능 이 있 는 지 밝 히 기(3)-열 저장 소 집합 색인 을 업데이트 할 수 있 습 니 다.

간단 한 소개
     열 저장 색인 은 SQL Server 2012 에 이미 존재 하지만 SQL Server 2012 에 서 는 비 집합 열 색인 만 만 만 들 수 있 습 니 다.이 는 열 색인 이 기 존의 줄 저장 색인 위 에 있 는 바 텀 데 이 터 를 인용 하여 더 많은 저장 공간 을 소모 하 는 것 을 의미 합 니 다.그러나 2012 에서 가장 큰 제한 은 비 집합 열 저장 색인 을 특정한 표 에 만 들 때 입 니 다.이 표 는 읽 기 전용 으로 바 뀌 어 데이터 창고 에서 열 색인 을 사용 하 더 라 도 데 이 터 를 업데이트 할 때마다 매우 고통스러운 일이 될 것 이다.SQL Server 2014 의 업데이트 가능 한 집합 색인 은 이 문 제 를 해결 했다.
집합 열 저장 색인 을 업데이트 할 수 있 습 니까?
    집합 열 저장 색인 의 개념 은 전통 적 인 줄 저장 과 유사 할 수 있 으 며,집합 색인 은 데이터 자체 이자 열 저장 의 개념 도 같다.줄 이 아 닌 열 에 따라 데 이 터 를 저장 하 는 것 은 많은 장점 을 제공 합 니 다.
먼저 대량의 집합,스 캔,그룹 등 데이터 창고 류 에 대한 조 회 는 선택 한 열 만 읽 어야 합 니 다.Join 여러 표 가 필요 한 별 모양 구조 등 장면 의 성능 향상 이 특히 뚜렷 합 니 다.그 다음은 열 색인 을 업데이트 할 수 있 고 표 마다 하나의(장점 이자 단점 입 니 다.비 집합 색인 을 다시 만 들 수 없 기 때 문 입 니 다)열 색인 을 모 으 면 됩 니 다.공간 열 색인 을 크게 절약 하 였 습 니 다.열 에 따라 저장 되 기 때문에 같은 열 에 있 는 데이터 형식 이 같 기 때문에 더욱 높 은 압축 비율 로 열 에 저 장 된 표 는 더 적은 저장 공간 을 차지 하기 때문에 더 적은 IO 가 존재 합 니 다.
그렇다면 열 저장 색인 은 어떤 단점 이 있 습 니까?
    줄 저장 소 는 OLTP 작업 에 매우 적합 합 니 다.모든 집합 색인 키 는 한 줄 을 표시 할 수 있 기 때문에 이 줄 은 물리 디스크 에 저장 되 어 연속 되 기 때문에 Seek 작업 을 이용 하여 대량의 선택성 이 매우 높 은 조 회 를 완성 할 수 있 습 니 다.열 저장 색인 같은 줄 의 모든 열 은 물리 적 으로 연결 되 지 않 고 열 저장 집합 색인 에는'홈 키'라 는 개념 이 없습니다.따라서 SEEK 작업 은 존재 하지 않 으 며,OLTP 류 를 대량으로 조회 하면 성능 에 문제 가 생 길 수 있 습 니 다.
    열 저장 색인 은 Scan 작업 만 지원 합 니 다.그림 1 참조.

그림 1.열 저장 색인 은 스 캔 작업 만 지원 합 니 다.
그러면 열 색인 은 어떻게 저장 합 니까?
    열 색인 저장 소 는 문 자 를 보고 의 미 를 가 질 수 있 는데,바로 열 에 따라 저장 하 는 것 이다.이 과정 은 세 단계 로 나 눌 수 있 습 니 다.먼저 한 줄 을 나 눌 수 있 습 니 다.이것 이 바로'줄 그룹'입 니 다.조 를 나 눈 후에 열 에 따라 나 누고 마지막 으로 열 을 압축 합 니 다.그림 2 참조.

그림 2.열 저장 과정
    이 중 일 부 는 그룹 을 나 누 기 에 부족 하 다 는 것 을 알 게 되 었 습 니 다.그러면 이 데 이 터 를 전통 적 인 줄 로 저장 하 는 형식 으로 가만히 있 게 하 세 요.이것 이 바로 Deltastore 입 니 다.데이터 가 그룹 을 나 눌 수 있 을 때 그룹 을 나 누 는 것 입 니 다.현재 SQL Server 2014 는 10W 이하 의 데이터 가 그룹 을 나 누 기 에 부족 하 다 고 생각 합 니 다.
    상기 열 에 저 장 된 두 부분 은 2014 년 에 새로 도 입 된 DMV 를 통 해 관측 할 수 있다.그림 3 참조.그림 3 에서 우리 팀 은 현재 31465 줄 의 집합 열 색인 이 1000 줄 의 새로운 데 이 터 를 삽입 하 였 으 며,SQL Server 는 이 부분의 데이터 가 10W 줄 에 미 치지 못 한다 고 생각 하여 Deltastore 방식 으로 존재 한다.

그림 3.압축 된 열 과 Deltastore
     우리 가 1000 데 이 터 를 다시 삽입 할 때 델 타 스토어 의 데 이 터 는 1000 으로 2000 에 이 르 렀 지만 델 타 스토어 에 존재 하 는 것 을 관찰 할 수 있다.그림 4 참조.

그림 4.다시 삽 입 된 데 이 터 는 여전히 Delta Store 에 있다.
      그러면 나 는 대량의 줄 을 삽입 하여 관측 하면 대량의 데 이 터 는 여전히 Delta Store 방식 으로 저장 되 어 있다 는 것 을 알 수 있다.그림 5 와 같다.

그림 5.대량의 데 이 터 를 삽입 한 후에 도 데 이 터 를 압축 할 수 없다.
    그렇다면 이 데 이 터 를 언제 압축 할 것 인가?BOL 에 따 르 면:http://msdn.microsoft.com/en-us/library/dn223749(v=sql.120).aspx 는 배경 스 레 드 가 정기 적 으로 검 측 될 것 입 니 다.또한 색인 을 재 구축 하거나 정리 할 때 도 자동 으로 압축 할 수 있 습 니 다.그림 6 참조.

그림 6.색인 재 구축 후 압축 파일 열 에 색인 저장
공간 점용 비교
    열 을 업데이트 하여 집합 색인 을 저장 할 수 있 는 압축 비율 이 가장 높다.같은 열 은 같은 종류의 데이터 이기 때문에 이런 데 이 터 는 더욱 좋 은 압축 비율 이 있다.현재 나 는 순 전 히 전통 적 인 집합 색인,페이지 압축,줄 압축,열 저장 색인 이 차지 하 는 공간 을 비교 하고 있다.물론 우리 가 전통 표 의 비 집합 색인 을 포함 하면 줄 저장 표 는 더 많은 공간 이 필요 할 것 이다.우 리 는 그림 7 과 같이 3W 여러 개의 데 이 터 를 간단하게 비교 했다.

그림 7.서로 다른 저장 공간 점용
    그림 7 의 예제 데 이 터 는 매우 적 지만 열 저장 소 는 비 집합 색인 이 없 는 줄 저장 소 보다 점용 공간 이 거의 2/3 줄 어 들 고 향상 이 크 지 않다 고 할 수 있다.
성능 단순 비교
    우선,열 에 따라 저장 합 니 다.우 리 는 모든 열 을 선택 합 니 다.줄 저장 에 있어 서 전체 표를 선택해 야 한 열 데 이 터 를 모두 읽 을 수 있 습 니 다.그러나 열 저장 소 는 선택 한 열 만 읽 어야 합 니 다.따라서 특정한 열 만 선택 하면 열 저장 성능 이 크게 향상 됩 니 다.그림 8 참조.

그림 8.열 저장 소 를 업데이트 하여 색인 을 모 으 는 성능 이 크게 향상 된다.
    그러나 반대로 우 리 는 전형 적 인 OLTP 조작 을 시도 하고 한 줄 의 모든 열 만 선택 하면 그림 8 의 결과 와 크게 달라 질 것 이다.그림 9 참조.

그림 9.OLTP 작업 에 있어 서 열 저장 색인 은 매우 무기력 하 다.
작은 매듭
    본 고 는 SQL Server 2014 에서 열 저장 색인 을 업데이트 할 수 있 는 원리,개념,장면,공간 사용 상황 을 논술 하고 두 개의 OLAP 와 OLTP 극단 적 인 예 를 들 어 성능 비 교 를 한다.열 저장 색인 은 데이터 창고 와 클래스 OLAP 조회 에 있어 서 큰 비약 이다.

좋은 웹페이지 즐겨찾기