메모리 내 OLTP에 지원되는 데이터 형식Supported Data Types for In-Memory OLTP

이 항목은 다음에 적용됩니다. 예SQL Server(2016부터)예Azure SQL Database아니요Azure SQL Data Warehouse아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

이 문서에서는 다음 항목의 메모리 내 OLTP 기능에 대해 지원되지 않는 데이터 형식을 소개합니다.This article lists the data types that are unsupported for the In-Memory OLTP features of:

  • 메모리 최적화 테이블Memory-optimized tables

  • 고유하게 컴파일된 T-SQL 모듈Natively compiled T-SQL modules

지원되지 않는 데이터 형식Unsupported Data Types

다음 데이터 형식은 지원되지 않습니다.The following data types are not supported:

datetimeoffset(Transact-SQL)datetimeoffset (Transact-SQL) geography(Transact-SQL)geography (Transact-SQL) geometry(Transact-SQL)geometry (Transact-SQL)
hierarchyid(Transact-SQL)hierarchyid (Transact-SQL) rowversion(Transact-SQL)rowversion (Transact-SQL) xml(Transact-SQL)xml (Transact-SQL)
sql_variant(Transact-SQL)sql_variant (Transact-SQL) 사용자 정의 형식User-Defined Types ..

지원되는 주요 데이터 형식Notable Supported Data Types

메모리 내 OLTP의 대다수 기능은 대부분의 데이터 형식을 지원합니다.Most data types are supported by the features of In-Memory OLTP. 지원되는 몇 가지 주요 데이터 형식은 다음과 같습니다.The following few are worth noting explicitly:

문자열 및 이진 유형String and Binary Types 참조 항목For more information
binary 및 varbinarybinary and varbinary binary 및 varbinary(Transact-SQL)binary and varbinary (Transact-SQL)
char 및 varcharchar and varchar char 및 varchar(Transact-SQL)char and varchar (Transact-SQL)
nchar 및 nvarcharnchar and nvarchar nchar 및 nvarchar(Transact-SQL)nchar and nvarchar (Transact-SQL)

위의 문자열 및 이진 데이터 형식의 경우 SQL Server 2016부터는 다음 사항이 적용됩니다.For the preceding string and binary data types, starting with SQL Server 2016:

  • 개별 메모리 최적화 테이블은 nvarchar(4000)등의 긴 열을 여러 개 포함할 수도 있습니다. 이러한 열의 길이로 인해 실제 행 크기가 8060바이트보다 커지더라도 포함이 가능합니다.An individual memory-optimized table can also have several long columns such as nvarchar(4000), even though their lengths would add to more than the physical row size of 8060 bytes.

  • 메모리 최적화 테이블은 varchar(max)와 같은 데이터 형식의 이진 열과 최대 길이 문자열을 포함할 수 있습니다.A memory-optimized table can have max length string and binary columns of data types such as varchar(max).

LOB 및 기타 행 외부 열 식별Identify LOBs and other columns that are off-row

SQL Server 2016부터는 메모리 최적화 테이블이 행 외부 열을 지원하여, 단일 테이블 행이 8060바이트보다 클 수 있습니다.Starting with SQL Server 2016, memory-optimized tables support off-row columns, which allow a single table row to be larger than 8060 bytes. 다음 Transact-SQL SELECT 문은 메모리 최적화 테이블에 대한 모든 행 외부 열을 보고합니다.The following Transact-SQL SELECT statement reports all columns that are off-row, for memory-optimized tables. 다음을 참고하십시오.Note that:

  • 모든 인덱스 키 열은 행에 저장됩니다.All index key columns are stored in-row.
    • 이제 메모리 최적화 테이블에서 고유하지 않은 인덱스 키에 NULLable 열을 포함할 수 있습니다.Nonunique index keys can now include NULLable columns, on memory-optimized tables.
    • 인덱스는 메모리 최적화 테이블에서 UNIQUE로 선언할 수 있습니다.Indexes can be declared as UNIQUE on a memory-optimized table.
  • 모든 LOB 열은 행 외부에 저장됩니다.All LOB columns are stored off-row.
  • max_length가 -1이면 LOB(Large Object) 열을 나타냅니다.A max_length of -1 indicates a large object (LOB) column.
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;

기타 데이터 형식Other Data Types

기타 유형Other Types 참조 항목For more information
테이블 형식table types 메모리 최적화 테이블 변수Memory-Optimized Table Variables

참고 항목See Also

메모리 내 OLTP에 대한 Transact-SQL 지원 Transact-SQL Support for In-Memory OLTP
메모리 최적화 테이블에서 SQL_VARIANT 구현Implementing SQL_VARIANT in a Memory-Optimized Table
메모리 최적화 테이블의 테이블 및 행 크기Table and Row size in Memory-Optimized Table