데이터베이스 개발자 Tip & 강좌

SQLER의 개발자들이 만들어가는 데이터베이스 사용자 Tip & 강좌 게시판입니다. SQL서버, Oracle, MySQL 등 여러 클라우드/오픈소스 기반 데이터베이스 개발 및 운영 관련 팁과 쿼리 노하우를 이곳에서 가장 먼저 접하실 수 있습니다. 많은 도움 되시길 바랍니다.

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

 

 



강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp

No. Subject Author Date Views
2053 Unix(Linux) timestamp(bigint) 형식을 datetime 으로 변경하기 jevida(강성욱) 2017.01.11 3023
2052 Query Rule Off를 사용한 SQL Server 옵티마이저 비활성화 jevida(강성욱) 2017.01.11 1576
2051 시스템 관리자 권한이 없는 특정 프로그램에서 Trace Flag 사용하기 jevida(강성욱) 2017.01.11 2349
2050 In-Memory OLTP 환경에서 체크포인트 작업과 디스크 부족 경고 jevida(강성욱) 2017.01.11 1277
2049 Spool 연산자와 추적 플래그 8690 jevida(강성욱) 2017.01.11 1857
2048 .NET 4.6.1에 변경된 Multisubnet 기본 수신기 동작 jevida(강성욱) 2017.01.11 1595
2047 함수 통계 정보 확인 (sys.dm_exec_function_stats) jevida(강성욱) 2017.01.11 1567
2046 NULL 데이터가 포함된 데이터 사용 시 주의점 jevida(강성욱) 2017.01.11 2821
2045 통계정보와 실제 데이터 분포 확인하기 jevida(강성욱) 2017.01.11 1669
2044 SQL Server Failover Cluster 설치시 네트워크 이름으로 인한 설치 오류 jevida(강성욱) 2017.01.11 1457
2043 SSIS 실행 로그 남기기 jevida(강성욱) 2017.01.11 2665
2042 확장이벤트를 사용한 실행 계획 캡처 jevida(강성욱) 2017.01.11 1211
2041 테이블 외래키 트리 확인 및 데이터 삭제하기 jevida(강성욱) 2017.01.11 1768
2040 기본 추적을 사용한 SQL Server 스키마 변경사항 캡처 jevida(강성욱) 2017.01.11 1552
2039 SQL Server 특정 테이블의 모든 컬럼에서 문자열 찾기 jevida(강성욱) 2017.01.11 1651
2038 SQL Server 임시 테이블 특성 jevida(강성욱) 2017.01.11 7134
2037 트리거를 사용하여 특정 컬럼 업데이트 하기 (After 트리거) jevida(강성욱) 2017.01.11 2152
2036 컬럼스토어 인덱스 성능 (Columnsotre Index Performance) jevida(강성욱) 2017.01.11 3184
» In-Memory 최적화 파일 경로 변경 jevida(강성욱) 2017.01.11 1495
2034 SA 계정 이름 변경 및 비활성화 jevida(강성욱) 2017.01.11 2274





XE Login