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 파일과 중간 파일이 생성된다.
메모리 최적화는 각 저장 프로시저 또는 테이블이 별도로 파일이 생성될 수 있도록 설정을 해야 한다. 일반적인 상황의 경우 기본 경로를 사용하므로 사용자가 설정하지 않아도 된다. 하지만 해당 경로에 대한 디스크 공간이 부족할 때 경로를 변경해주어야 한다.
다음 오류는 메모리 최적화를 사용한 경로의 디스크 공간 부족 오류이다.
"Msg 41322, Level 16, State 13, Line 0 MAT/PIT export/import encountered a failure for memory optimized table or natively compiled stored procedure with object ID 214291823 in database ID 6. The error code was 0x80030070". |
0x80030070은 ERROR_DISK_FULL로 디스크 공간 부족에 대한 시스템 오류이다. 이 원인은 메모리 최적화된 오브젝트(테이블 및 저장 프로시저)를 많이 가지고 있어 파일이 많이 생성되어 발생한 것이다.
메모리 최적화 파일은 서버 인스턴스에 대한 데이터베이스 파일의 기본 위치에 저장된다.
로드된 네이티브 DLL을 조회하는 방법으로는 sys.dm_os_loaded_modules을 사용할 수 있다.
이러한 파일은 다음의 조건일 때 삭제되고 다시 생성된다.
-
SQL Server 재시작
-
데이터베이스 Offline/Online
-
테이블 삭제 후 재생성 또는 프로시저 삭제 후 재생성
디스크 공간이 부족하여 최적화 파일을 재배치 해야 한다면 모든 기본 데이터 파일 위치를 변경하여 해결할 수 있다. SSMS에서 서버 속성에서 변경할 수 있다.
해당 설정 변경 후에는 SQL Server를 재시작해야 적용되며 인메모리 관련 파일을 새로운 경로에 생성됨을 확인할 수 있다.
[참고자료]
2015-09-08 / 강성욱 / http://sqlmvp.kr
SQL Server, SQL 2014, SQL 2016, In-Memory, 메모리 최적화 테이블, In Memory OLTP file
'SQL Server > SQL Server Tip' 카테고리의 다른 글
트리거를 사용하여 특정 컬럼 업데이트 하기 (After 트리거) (0) | 2015.09.16 |
---|---|
컬럼스토어 인덱스 성능 (Columnsotre Index Performance) (0) | 2015.09.14 |
SQL Server 2016 Query Store -실행된 쿼리에 대한 실행 계획 및 통계 정보를 확인하자 (0) | 2015.09.01 |
SQL Server 2016 동적 데이터 마스킹을 우회하여 원본 데이터 출력하기 (0) | 2015.08.27 |
SA 계정 이름 변경 및 비활성화 (0) | 2015.08.25 |