SQL Server/SQL Server Tip

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

SungWookKang 2015. 9. 8. 09:53
반응형

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

 

  • Version : SQL Server 2014, 2016

 

SQL Server 2014이상에서는 인 메모리 OLTP 기능과 메모리 최적화 테이블을 만들 수 있다.

 

이 기능을 사용하면 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을 사용할 수 있다.

 

이러한 파일은 다음의 조건일 때 삭제되고 다시 생성된다.

  1. SQL Server 재시작
  2. 데이터베이스 Offline/Online
  3. 테이블 삭제 후 재생성 또는 프로시저 삭제 후 재생성

 

디스크 공간이 부족하여 최적화 파일을 재배치 해야 한다면 모든 기본 데이터 파일 위치를 변경하여 해결할 수 있다. SSMS에서 서버 속성에서 변경할 수 있다.

 

해당 설정 변경 후에는 SQL Server를 재시작해야 적용되며 인메모리 관련 파일을 새로운 경로에 생성됨을 확인할 수 있다.

 

 

[참고자료]

http://blogs.msdn.com/b/psssql/archive/2015/08/31/in-memory-oltp-files-what-are-they-and-how-can-i-relocate-them.aspx

 

 

2015-09-08 / 강성욱 / http://sqlmvp.kr

 

 

SQL Server, SQL 2014, SQL 2016, In-Memory, 메모리 최적화 테이블, In Memory OLTP file

반응형