SQL Server/SQL Server Tip

SQL Server 2014 스토리지 할당 및 메모리 옵티마이즈 테이블 관리

SungWookKang 2015. 7. 16. 08:36
반응형

SQL Server 2014 스토리지 할당 및 메모리 옵티마이즈 테이블 관리

 

  • Version : SQL Server 2014

SQL Server 2014의 스토리지 할당 및 메모리 옵티마이즈 테이블에 대해서 알아본다. 이번 포스트는 SQL Server Blog를 읽고 이해한 내용을 정리하였으며 번역의 오류 및 기술적 오류가 있음을 미리 알려둔다. 자세한 내용은 원문을 참고 한다.

 

메모리 옵티마이즈 테이블 관리는 디스크 기반 테이블과 매우 다르다. 디스크 기반의 테이블 일부를 메모리 옵티마이즈 테이블로 마이그레이션 하거나 메모리 옵티마이즈 테이블을 사용하여 새 응용프로그램을 개발하는 경우 큰 차이가 있음을 알 수 있다.

 

디스크 기반 테이블의 SQL Server는 디스크 및 메모리에서 8K 페이지 저장소를 사용한다. 메모리 옵티마이즈 테이블은 디스크와 메모리에서 서로 다른 크기를 사용한다. 이는 때때로 메모리 옵티마이즈 테이블에서 스토리지의 소비 불균형을 초래하기 때문에 고객들의 관심 포인트이기도 하다.

 

메모리 옵티마이즈 된 테이블은 하나 이상의 데이터와 델타 파일로 이루어져 있으며 데이터 입력 또는 삭제 시 델타 파일을 참고 한다. OLTP 환경에서는 DML 작업인 업데이트와 삽입, 삭제가 발생하고 데이터를 유지하기 위해 새로운 데이터 / 델타 파일이 만들어 진다. 또한 기존의 델타 파일은 기존 행의 삭제 처리하도록 업데이트 된다. 시간이 지남에 따라 활성 행의 개수가 삭제된 행에 대한 어카운트가 연속해서 두 개 이상인 경우 CFP 임계치(일반적으로 < 50%)에 도달하면 128MB의 하나의 CFP로 자동으로 병합되며 백그라운드에서 새로운 CFP가 생성된다. 병합작업이 완료 되면 기존의 CFP들은 스토리지에서 가비지 컬렉터에 의해 제거 된다. SQL Server 2014 CTP2는 데이터베이스 내에서 4096 CFP를 지원하지만 RTM의 경우 8192 CFP로 변경되므로 주의 한다.

 

데이터/델타 파일은 4개의 특징이 있다.

  1. Pre-Allocated CFPs (data and delta) : 작은 CFP 세트는 새 트랜잭션이 실행될 때 새 파일을 할당하는 대기를 최소화 하거나 제거하기 위해 미리 할당을 유지 한다. 전체 데이터 파일 크기는 128MB, 델타 파일 크기는 8MB이며 데이터에 포함하고 있지는 않다. CFP의 개수는 논리적 프로세스 또는 스케줄러의 개수로 계산되며 최소 8개이다. 이는 데이터베이스의 메모리 옵티마이즈 테이블의 고정된 스토리지 오버헤드 이다.
  2. Active CFP : 이들은 마지막 체크포인트의 삽입/삭제된 행을 포함한다. 이 CFP는 데이터베이스 재시작시 트랜잭션 로그의 활성 부분을 적용하기 전에 필요한 모든 삽입/삭제 된 행을 포함한다. 우리는 결합된 Active CFP의 크기가 메모리 옵티마이즈 테이블의 크기의 2배로 예상한다. 그러나 동시 많은 트랜잭션 또는 병합작업의 데이터파일이 128MB 보다 큰 경우 2배로 제한 된다. 이 논의를 단순화 하기 위해 우리는 데이터파일을 128MB로 가정하고 병합 및 체크포인트 작업이 유지 될 수 있도록 한다.
  3. CFP 운영을 위한 요구사항 : 병합작업은 새로운 데이터/델타 파일로 이동 된다. 이 파일은 데이터베이스의 재시작을 필요로 하지 않는다. 그러나 Server에서 체크포인트에서 복구해야 할 경우 필요하기 때문에 할당 취소할 수 없다. CFP는 트랜잭션 범위를 벗어난 로그 절단 지점으로 이동하면 가비지 컬렉터에 표시 할 수 있다. 이 체크 포인트 작업 및 트랜잭션 로그 백업의 조합이 필요하다. 데이터베이스가 단순 복구 모델로 구성되어 있는 경우 트랜잭션 로그 백업이 필요하지 않다.
  4. 저장소에서 CFP 제거 : 가비지 컬렉터에 의해 제거 된다.

 

단순 복구 모드에서 실행하지 않을 경우 위의 카테고리 3번, 4번 중 변환하면 체크포인트와 트랜잭션 로그백업 단계가 필요하다. 인메모리 데이터베이스의 경우 자동 체크포인트는 마지막 체크포인트 이후 트랜잭션 로그 크기가 512MB 초과할 때 진행 된다. 물론 수동으로 가비지 컬렉터를 수행하고 로그 백업 다음에 체크포인트를 강제 할 수 있지만 5개의 빈 CFP(size 128MB) 파일이 추가된다.

 

[참고자료]

http://blogs.technet.com/b/dataplatforminsider/archive/2014/01/16/storage-allocation-and-management-for-memory-optimized-tables.aspx

 

 

2014-06-17 / 강성욱 / http://sqlmvp.kr

 

SQLSERVER, mssql, SQL강좌, sqlserver2014, sql2014, 메모리 최적화 테이블, memory optimize table, cfp, immemory table, 메모리 테이블

반응형