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
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 34065
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 17177
2034 SA 계정 이름 변경 및 비활성화 jevida(강성욱) 2017.01.11 2443
2033 SQL Server 데이터베이스 속성을 확인할 때 사용되는 master.dbo.spt_values 복구 jevida(강성욱) 2017.01.11 1742
2032 XML로 생성된 정보를 테이블로 저장하기(sp_xml_preparedocument) jevida(강성욱) 2017.01.11 2641
2031 SQL Server 2016 Temporal Table – 데이터 변경 내용 추적 jevida(강성욱) 2017.01.11 1987
2030 Error 17053 타사 네트워크 장치의 SMB 파일 공유 오류 jevida(강성욱) 2017.01.11 1222
2029 최신 SQL Server Native Client 설치하기 jevida(강성욱) 2017.01.11 2023
2028 Sys.dm_os_waiting_tasks를 활용한 실행중인 병렬쿼리 확인 jevida(강성욱) 2017.01.11 1657
2027 DBCC DROPCLEANBUFFERS가 작동하지 않을 때 jevida(강성욱) 2017.01.11 1764
2026 손상된 부트페이지 복구하기 jevida(강성욱) 2017.01.11 1927
2025 Temp table 객체 생성시 세션간 충돌하지 않는 이유 jevida(강성욱) 2017.01.11 1685
2024 SQL Server 데이터베이스 메일 계정 수정 jevida(강성욱) 2017.01.11 2343
2023 XEvent(확장이벤트)를 활용한 활성 로그 모니터링 하기 jevida(강성욱) 2017.01.11 2319
2022 특정 사용자에 대한 트랜잭션 로그 찾기 jevida(강성욱) 2017.01.11 2441
2021 SQL Server I/O 서브시스템 레이턴시 확인 jevida(강성욱) 2017.01.11 1799
2020 실행계획의 물리 및 논리연산자 설명 jevida(강성욱) 2017.01.11 1878
2019 SQL Server Page Life Expectancy (PLE) jevida(강성욱) 2017.01.11 2459
2018 백업 압축과 추적플래그 3042 jevida(강성욱) 2017.01.11 2130
2017 SQL Server에서 MySQL 링크드서버 연결하기 jevida(강성욱) 2017.01.11 4887
2016 SOS_SCHEDURLER_YIELD 대기와 쿼리 식별 jevida(강성욱) 2017.01.11 3638
2015 랜덤 캐릭터 생성하기 jevida(강성욱) 2017.01.11 2487





XE Login