In-Memory OLTP 사용시 메모리 할당량 초과 오류
· Version : SQL Server 2014, 2016
SQL Server 에서 In-Memory OLTP를 사용하는 환경에서 아래와 같은 오류가 에러로그에 기록되어 있다면 현재 적용되어 있는 In-Memory 용량을 초과한 것이다.
[INFO] HkDatabaseTryAcquireUserMemory(): Database ID: [7]. Out of user memory quota: requested = 131200; available = 74641; quota = 34359738368; operation = 1. |
오류 로그에 기록된 내용은 아래와 같다.
· requested = 131200 : 요청된 바이트 수
· available = 74641 : 사용할 수 있는 바이트 수
· quota = 34359738368 : 현재 할당된 바이트 수 (Standard Edition : 32G)
· operation = 1 : 메모리 최적화 테이블 변수를 생성할 수 있도록 메모리가 요청 됨
Ø operation 0 : create memory optimized table
Ø operation 1 : create memory optimized table variable
Ø operation 2 : insert
Ø operation 3 : update
위의 메시지 외에도 사용자 어플리케이션에서는 아래와 같은 메시지를 수신하는 경우도 있다.
Msg 41823, Level 16, State 171, Line 6 Could not perform the operation because the database has reached its quota for in-memory tables. See 'http://go.microsoft.com/fwlink/?LinkID=623028' for more information. |
메모리 최적화 테이블 변수 사용시 루프를 사용할때 위와 같은 메모리 부족 오류가 자주 발생 할 수 있으니 주의 할 수 있도록 한다.
· 메모리 최적화 테이블변수와 701 오류 (loop 사용으로 인한 메모리 부족 오류) : http://sqlmvp.kr/220996905075
SQL Server 2016 In-Memory OLTP quotas.
Edition |
In-Memory OLTP quota(per DB) |
Express |
352MB |
Web |
16GB |
Standard |
32GB |
Developer |
Unlimited |
Enterprise |
Unlimited |
[참고자료]
2017-08-23 / 강성욱 / http://sqlmvp.kr
SQL Server 2016, In memory OLTP, SQL Server, DBA, Memory optimize table, In Memory quota
'SQL Server > SQL Server Tip' 카테고리의 다른 글
SQL Server 2016 JSON 형식을 일반 ROW 형식으로 반환하기 (0) | 2018.03.31 |
---|---|
model Database 손상시 발생하는 영향 및 복구 방법 (0) | 2018.03.31 |
SQL Server 2016 쿼리 실행에 대한 각 스레드(오퍼레이터) 성능 통계 (0) | 2017.09.13 |
Multisubnet환경의 AG 그룹에서 링크드 서버 사용시 주의점 (0) | 2017.09.13 |
SQL Server DBA 체크리스트 (0) | 2017.05.31 |