메모리 내 OLTP에 지원되는 데이터 형식
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance
이 문서에서는 다음 항목의 메모리 내 OLTP 기능에 대해 지원되지 않는 데이터 형식을 소개합니다.
메모리 최적화 테이블
고유하게 컴파일된 T-SQL 모듈
지원되지 않는 데이터 형식
지원되지 않는 데이터 형식은 다음과 같습니다.
주목할 만한 지원되는 데이터 형식
메모리 내 OLTP의 대다수 기능은 대부분의 데이터 형식을 지원합니다. 다음 몇 가지는 명시적으로 주목할 가치가 있습니다.
문자열 및 이진 유형 | 자세한 내용 |
---|---|
binary와 varbinary* | binary 및 varbinary(Transact-SQL) |
char와 varchar* | char와 varchar(Transact-SQL) |
nchar 및 nvarchar* | nchar 및 nvarchar(Transact-SQL) |
SQL Server 2016부터 이전 문자열 및 이진 데이터 형식의 경우:
개별 메모리 최적화 테이블에는 길이가 8060바이트의 실제 행 크기를 능가하더라도
nvarchar(4000)
와 같이 긴 열이 여러 개 있을 수 있습니다.메모리 최적화 테이블에는
varchar(max)
와 같이 최대 길이 문자열과 같은 데이터 형식의 이진 열이 있을 수 있습니다.
LOB 및 기타 행 외부 열 식별
SQL Server 2016부터 메모리 최적화 테이블이 행 외 열을 지원합니다. 이로 인해 한 테이블 행이 8060바이트보다 클 수 있습니다. 다음 Transact-SQL SELECT 문은 메모리 최적화 테이블에 대한 모든 행 외부 열을 보고합니다. 다음 사항에 유의합니다.
- 모든 인덱스 키 열은 행 내부에 저장됩니다.
- 이제 메모리 최적화 테이블에서 고유하지 않은 인덱스 키에 NULLable 열을 포함할 수 있습니다.
- 인덱스는 메모리 최적화 테이블에서 UNIQUE로 선언할 수 있습니다.
- 모든 LOB 열은 행에서 벗어난 곳에 저장됩니다.
- max_length가 -1이면 LOB(Large Object) 열을 나타냅니다.
SELECT
OBJECT_NAME(m.object_id) as [table],
c.name as [column],
c.max_length
FROM
sys.memory_optimized_tables_internal_attributes AS m
JOIN sys.columns AS c
ON m.object_id = c.object_id
AND m.minor_id = c.column_id
WHERE
m.type = 5;
기타 데이터 형식
기타 형식 | 자세한 내용 |
---|---|
테이블 형식 | 메모리 최적화 테이블 변수 |
참고 항목
메모리 내 OLTP에 대한 Transact-SQL 지원
메모리 최적화 테이블에서 SQL_VARIANT 구현
메모리 최적화 테이블의 테이블 및 행 크기