SQL Server 2014 에 어떤 새로운 기능 이 있 는 지 밝 히 기(1)-메모리 데이터베이스

간단 한 소개
   SQL Server 2014 는 감동적인 새로운 기능 을 많이 제 공 했 지만 그 중에서 가장 기대 되 는 특성 중 하 나 는 메모리 데이터베이스 라 고 생각 합 니 다.작년 에 시애틀 에서 SQL PASS Summit 2012 개막 식 에 참 가 했 을 때 마이크로소프트 는 다음 SQL Server 버 전에 Hekaton 이라는 메모리 데이터베이스 엔진 을 추가 하 겠 다 고 발표 했다.이제 2014 CTP 1 이 도래 함 에 따라 우 리 는 마침내 그 모습 을 엿 볼 수 있 게 되 었 다.
메모리 데이터베이스
    전통 적 인 데이터 베이스 표 에서 디스크 의 물리 적 구조 제한 으로 인해 표 와 색인 의 구 조 는 B-Tree 이기 때문에 이런 색인 은 동시 다발 적 인 OLTP 환경 에서 매우 무기력 해 보인다.비록 이런 문 제 를 해결 하 는 방법 이 많 지만 예 를 들 어 낙관적 인 병행 제어,응용 프로그램 캐 시,분포 식 등 이다.그러나 비용 은 여전히 약간 높 을 것 이다.그러나 최근 몇 년 동안 하드웨어 가 발전 함 에 따라 현재 서버 가 수백 G 의 메모 리 를 가지 고 있 는 것 은 드 문 일이 아니다.또한 NUMA 구조 가 성숙 하고 다 중 CPU 가 메모리 에 접근 하 는 병목 문 제 를 없 앴 기 때문에 메모리 데이터 베 이 스 는 나타 날 수 있다.
    메모리 의 학명 은 Random Access Memory(RAM)이기 때문에 그 특성 과 같이 무 작위 로 접근 하기 때문에 메모리 에 대응 하 는 데이터 구조 도 Hash-Index 이 고 동시 다발 적 인 격 리 방식 도 MVCC 로 대응 하기 때문에 메모리 데이터 베 이 스 는 같은 하드웨어 자원 에서 Handle 이 더 많은 병행 과 요청 을 할 수 있 고 잠 겨 서 막 히 지 않 습 니 다.한편,SQL Server 2014 는 이 강력 한 기능 을 통합 하여 Oracle 의 TimesTen 과 달리 추가 비용 을 지불해 야 하기 때문에 SSD AS Buffer Pool 특성 을 결합 하여 발생 하 는 효 과 는 매우 기대 할 만하 다.
SQL Server 메모리 데이터베이스 의 표현 형식
    SQL Server 의 Hekaton 엔진 은 두 부분 으로 구성 되 어 있 습 니 다.메모리 최적화 표 와 로 컬 컴 파일 저장 과정 입 니 다.비록 Hekaton 이 관계 데이터베이스 엔진 에 통합 되 었 지만 그들 을 방문 하 는 방법 은 클 라 이언 트 에 투명 하 다.이것 은 클 라 이언 트 응용 프로그램의 측면 에서 볼 때 Hekaton 엔진 의 존 재 를 알 지 못 한 다 는 것 을 의미한다.그림 1 참조.

그림 1.클 라 이언 트 앱 은 Hekaton 엔진 의 존 재 를 감지 하지 못 한다.
    우선 메모리 최적화 표 는 자물쇠 의 개념 이 전혀 존재 하지 않 는 다.(이전 버 전 은 스냅 샷 격 리 라 는 낙관적 인 병행 제어 개념 이 있 었 지만 스냅 샷 격 리 는 데 이 터 를 수정 할 때 잠 금 을 추가 해 야 한다)그 밖 에 메모리 최적화 표 Hash-Index 구 조 는 무 작위 읽 기와 쓰기 의 속 도 를 크게 향상 시 켰 다.또한 메모리 최적화 표 는 비 영구적 인 메모리 최적화 표 로 설정 할 수 있다.로그 가 없습니다.(ETL 중간 결과 작업 에 적합 하지만 데이터 손실 위험 이 있 습 니 다)
    다음은 메모리 최적화 표를 만 드 는 것 을 보 겠 습 니 다.
    우선,메모리 최적화 표 는 데이터베이스 에 특수 한 파일 그룹 이 존재 해 야 합 니 다.메모리 최적화 표를 저장 할 수 있 는 CheckPoint 파일 은 전통 적 인 mdf 나 ldf 파일 과 달리 이 파일 그룹 은 하나의 파일 이 아 닌 디 렉 터 리 입 니 다.CheckPoint 파일 은 추가 만 할 수 있 기 때문에 수정 하지 않 습 니 다.그림 2 참조.

그림 2.메모리 최적화 표 에 필요 한 특수 파일 그룹
그림 3 참조.

그림 3.메모리 최적화 파일 그룹
    파일 그룹 이 생 긴 후에 우 리 는 그림 4 와 같은 메모리 최적화 표를 만 듭 니 다.

그림 4.메모리 최적화 표 만 들 기
   현재 SSMS 는 UI 인터페이스 에서 메모리 최적화 표를 만 드 는 것 을 지원 하지 않 기 때문에 T-SQL 을 통 해 메모리 최적화 표를 만 들 수 있 습 니 다.그림 5 참조.

그림 5.코드 를 사용 하여 메모리 최적화 표를 만 듭 니 다.
    표 가 만들어 지면 데 이 터 를 조회 할 수 있 습 니 다.주의해 야 할 것 은 메모리 최적화 표를 조회 하려 면 snapshot 격 리 등급 이나 hint 가 필요 합 니 다.이 격 리 등급 은 스냅 샷 격 리 와 다 릅 니 다.그림 6 참조.

그림 6.메모리 최적화 표를 조회 하려 면 알림 을 추가 해 야 한다.
    또한 테이블 을 만 드 는 문 구 를 보면 현재 SQL Server 2014 메모리 최적화 테이블 의 Hash Index 는 고정된 Bucket 크기 만 지원 하고 동적 할당 Bucket 크기 는 지원 되 지 않 으 므 로 주의해 야 합 니 다.
메모리 데이터베이스 와 호 환 되 지 않 는 기능
    현재 로 서 는 데이터베이스 미 러 와 복 제 는 메모리 최적화 표 와 호 환 되 지 않 지만,AlwaysOn,로그 전송,백업 복원 은 완전한 지원 입 니 다.
성능 테스트
   위 에서 한 무더기 의 이론 을 늘 어 놓 았 으 니,모두들 답답 해 하 는 것 같다.다음은 메모리 최적화 표+로 컬 컴 파일 저장 과정 과 전통 적 인 B-Tree 표를 비교 하 는 간단 한 성능 테스트 를 하 겠 습 니 다.B-Tree 표 는 그림 7 과 같 고 메모리 최적화 표+로 컬 컴 파일 저장 과정 은 그림 8 과 같 습 니 다.

그림 7.전통 적 인 B-Tree 시계

그림 8.메모리 최적화 표+로 컬 컴 파일 저장 과정
   따라서 메모리 최적화 표+로 컬 컴 파일 저장 과정 이 몇 십 배 에 가 까 운 성능 향상 을 알 수 있다.

좋은 웹페이지 즐겨찾기