SQL 2014 7

In-Memory OLTP를 사용할 때 체크포인트 파일이 너무 많아 지는 이유

In-Memory OLTP를 사용할 때 체크포인트 파일이 너무 많아 지는 이유 · Version : SQL Server 2014, 2016 SQL Server에서 로그 백업은 매우 중요하다. 로그 백업을 수행하지 않으면 로그 증가와 체크포인트 파일 증가가 발생할 수 있다. 트랜잭션 로그 아키텍처에 관해서는 아래 링크를 참고 한다.· 트랜잭션 로그 논리 아키텍처 - http://sqlmvp.kr/140187294218· 트랜잭션 로그 물리 아키텍처 - http://sqlmvp.kr/140187358202· LDF 파일이 잘리지 않는 이유 - http://sqlmvp.kr/140194327713· 이번 케이스는 하나의 In-Memory 최적화 테이블이 있는 데이터베이스를 복원 후 해당 테이블을 삭제하였다. ..

메모리 최적화 테이블변수와 701 오류 (loop 사용으로 인한 메모리 부족 오류)

메모리 최적화 테이블변수와 701 오류 (loop 사용으로 인한 메모리 부족 오류) · Version : SQL Server 2014, 2016 메모리 최적화 테이블 변수에서 루프를 사용할 때 아래와 같은 메모리 부족 오류가 발생할 수 있다. 왜 이런 오류가 발생하는 것일까? Msg 701, Level 17, State 103, Line 11 There is insufficient system memory in resource pool ‘default’ to run this query. 이 오류는 메모리 최적화 테이블에서 의도된 디자인으로 발생한 오류이다. 메모리 액세스에 최적화된 테이블 변수에 관한 문서를 찾아보면 다음과 같은 설명이 있다. (https://technet.microsoft.com/ko-..

메모리 최적화 테이블에서 해시 인덱스 사용시 버킷 카운트의 중요성

메모리 최적화 테이블에서 해시 인덱스 사용시 버킷 카운트의 중요성 · Version : SQL Server 2014, 2016 SQL Server Memory optimized table(이하 메모리 최적화 테이블)은 기본적으로 메인 메모리에 상주한다. 메모리 최적화 테이블의 데이터는은 메모리에 상주하며 읽고 쓴다. 내구성의 목적으로 보조 복사본이 디스크에서 유지 관리 된다. 메모리 액세스에 최적화된 테이블의 데이터는 데이터베이스 복구중(또는 서버 재시작)에만 디스크에서 읽는다. 아래 스크립트는 메모리 최적화 테이블을 생성한다. CREATE TYPE [Sales].[SalesOrderDetailType_inmem] AS TABLE( [OrderQty] [smallint] NOT NULL, [Product..

In-Memory OLTP 환경에서 체크포인트 작업과 디스크 부족 경고

In-Memory OLTP 환경에서 체크포인트 작업과 디스크 부족 경고 Version : SQL Server 2014, 2016 SQL Server 2014 버전부터 제공되는 인메모리 OLTP 기능을 사용하는 동안에도 여전히 충돌이나 재시작시 복구 시간을 줄일수 있는 방법이 필요하다. 디스크기반의 테이블 경우 체크포인트가 발생할때 디스크에 기록되지 않은 더티페이지가 디스크에 기록(플러시) 된다. 인메모리 OLTP의 경우에도 별도의 체크포인트 파일 세트가 있으며 체크포인트 파일은 MEMORY_OPTIMIZED_DATA 파일 그룹을 생성할 때 지정한 디렉토리에 생성된다. 인메모리 테이블에서 체크포인트시 디스크가 부족할 경우 데이터베이스는 온라인 상태로 유지되지만 아래와 같은 오류메시지가 나타난다. 2015-..

SQL Server 2014 온라인 인덱스 리빌드와 잠금 우선순위 옵션

SQL Server 2014 온라인 인덱스 리빌드와 잠금 우선순위 옵션 Version : SQL Server 2014 SQL Server에서 인덱스를 다시 작성하면 인덱스가 삭제된 다음 다시 생성된다. 인덱스가 생성되는 과정에서 조각화가 제거되고 지정된 채우기 비율 또는 기존 채우기 비율 설정을 기준으로 페이지를 압축하여 디스크 공간을 회수하고 인덱스 행을 연속된 페이지로 다시 정렬할 수 있다. 익스텐트가 128개 이상인 인덱스를 다시 작성하면 데이터베이스 엔진에서 실제 페이지 할당 취소와 해당 관련 잠금이 트랜잭션 커밋후까지 지연된다. 인덱스의 크기가 작은 경우에는 혼합 익스텐트에 저장되기 때문에 리빌드 후에도 조각화가 줄어들지 않는 경우가 있다. ALTER INDEX : https://msdn.mic..

In-Memory 최적화 파일 경로 변경

In-Memory 최적화 파일 경로 변경 Version : SQL Server 2014, 2016 SQL Server 2014이상에서는 인 메모리 OLTP 기능과 메모리 최적화 테이블을 만들 수 있다. In-Memory OLTP (In-Memory Optimization) https://msdn.microsoft.com/en-us/library/Dn133186(v=SQL.120).aspx 이 기능을 사용하면 SQL Server는 실제로 성능을 최적화하는 네이티브 코드를 생성한다. 그 결과 DLL, PDB 파일과 중간 파일이 생성된다. 메모리 최적화는 각 저장 프로시저 또는 테이블이 별도로 파일이 생성될 수 있도록 설정을 해야 한다. 일반적인 상황의 경우 기본 경로를 사용하므로 사용자가 설정하지 않아도 된..

서버 그룹을 이용한 다중서버 쿼리하기

서버 그룹을 이용한 다중서버 쿼리하기 Version : SQL Server 2008, 2008R2, 2012, 2014 여러 SQL Server에 동일한 쿼리를 실행하는 경우가 있다. 관리하는 서버 수가 적다면 직접 서버에 접속하여 하나씩 실행해도 되지만 관리하는 서버가 많다면 하나씩 실행하는 것은 많은 리소스가 소모되는 일이다. SQL Server 2008부터는 중앙관리 서버 기능을 사용하여 서버그룹에 등록되어있는 서버에 대해서는 다중 서버 쿼리가 가능하다. 다중 서버 쿼리를 사용하기 위해서는 우선 서버 그룹에 서버를 등록해야 한다. 등록된 서버를 보기 위해서는 메뉴에서 [보기] [등록된 서버]를 실행 한다. [등록된 서버]에서 로컬 서버 그룹에서 마우스 오른쪽 버튼을 클릭하여 [새 서버 그룹]을 생성..