메모리 내 OLTP에 지원되는 데이터 형식

적용 대상:SQL ServerAzure SQL DatabaseAzure 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 구현
메모리 최적화 테이블의 테이블 및 행 크기