SQL Server 2014 - Hekaton

SQL2014 버전에 대한 많은 정보가 공유되고 있는데, OLTP 시스템 중 인 메모리 부분이 관심이 되고 있습니다. 기존 RDBMS에서 처리 속도에 비해 16배 정도 속도 차이가 있다고 하지요.

   

평가판에 대한 일반인 오픈은 되고 있지 않은 상태입니다.

아래의 링크를 통해서 알림 등록 가능합니다.

http://www.microsoft.com/en-us/sqlserver/sql-server-2014.aspx?WT.mc_id=OO_Technet_Home_General_EN_US

   

   

   

칼렌님이 올려주신 white paper에는 2014에 대한 내부 아키텍쳐 정보를 살짝 볼 수 있습니다.

SQL Server In-Memory OLTP Internals Overview for CTP1
http://sqlblog.com/blogs/kalen_delaney/archive/2013/06/05/hekaton-whitepaper.aspx

   

안습이게도 모두 영어네요 bb… 영어진짜 못하는데~ bb        

   

SQL Server 엔진에 포함된 In-Memory Component들… 모든 클라이언트들은 TDS 핸들러를 통해서 동일한 방법으로 접속을 합니다. Disk기반 테이블과 메모리 최적화 테이블들의 접근하는 컴포넌트가 다르며, 가장 큰 차이점은 메모리 기반 테이블을 엑세스 할때 디스크로부터 캐쉬 page를 읽을 필요가 없다.

   

  • 트랜잭션 로그도 기존 디스크 기반과 동일하게 기록이 된다.
  • SCHEMA_ONLY 옵션으로 메모리에만 존재할 수 있는 테이블 옵션. 휘발성인 데이터에 쓰면 좋겠다. 예를 들어 자주 쓰는 정보이지만 메모리에만 넣어두면 좋을 것들~~ 카운팅, 최신 뉴스~ 등등. 웹 세션 상태, . 좀더 고민해봐야겠다
  • 메모리 기반 테이블들은 전통적인 B-Tree 형태로 저장하지 않는다. 해쉬 인덱스 기반으로 특별한 BW-Tree를 사용하여 저장 한다. 모든 테이블은 적어도 하나의 인덱스를 가져야 하며, 디스크 기반의 테이블들과 같이 힙 형태로 저장할 수 없다.
  • 메모리 기반 테이블은 완전히 낙관성 다중 버전 동시성 제어를 사용하며, 이에 대기할 필요가 없다.
  • natively compiled stored procedures으로 최고 성능 실행을 얻을 수 있다.

   

   

SQL2014는 64bit 기반의 OS에서만 설치 가능하다.

   

데이타베이스 생성

기존 데이타베이스 생성 방식과 비슷하며, 추가적으로 CONTAINS MEMORY_OPTIMIZED_DATA 키워드로 메모리 기반 테이블용 파일 그룹을 지정 한다.

  • 바이너리 collation을 지정
  • 메모리 기반 테이블 경로 지정, 만약 메모리 기반 테이블이 여러 개 있을 경우 각각의 경로를 지정을 해야 할 듯?

   

테이블 생성

   

지원되는 데이터 타입

XML, CLR, MAX 데이터 형식으로 지정하는게 없고, n으로 특정 크기를 지정해야 한다. .

   

   

기존 테이블 생성한는 방법과 동일하며, 아래와 같이 빨간줄 부분만 추가하면 된다.

인 메모리 기반 제약 사항