메모리 내 OLTP에 대해 지원되지 않는 SQL Server 기능Unsupported SQL Server Features for In-Memory OLTP

이 항목 적용 대상: 예SQL Server예Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServeryesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

이 항목에서는 메모리 최적화 개체와 함께 사용할 수 없는 SQL ServerSQL Server 기능에 대해 설명합니다.This topic discusses SQL ServerSQL Server features that are not supported for use with memory-optimized objects.

SQL ServerSQL Server 메모리 내 OLTP에 지원되지 않는 기능 Features Not Supported for In-Memory OLTP

다음 SQL ServerSQL Server 기능은 메모리 최적화 데이터 파일 그룹과 같은 메모리 최적화 개체가 포함된 데이터베이스에서 지원되지 않습니다.The following SQL ServerSQL Server features are not supported on a database that has memory-optimized objects (including memory-optimized data filegroup).

지원되지 않는 기능Unsupported Feature 기능 설명Feature Description
메모리 최적화 테이블에 대한 데이터 압축Data compression for memory-optimized tables. 데이터 압축 기능을 사용하여 데이터베이스 내의 데이터를 압축하고 데이터베이스의 크기를 줄일 수 있습니다.You can use the data compression feature to help compress the data inside a database, and to help reduce the size of the database. 자세한 내용은 Data Compression을 참조하세요.For more information, see Data Compression.
메모리 최적화 테이블 및 HASH 인덱스와 비클러스터형 인덱스의 분할Partitioning of memory-optimized tables and HASH indexes, and of nonclustered indexes. 분할 테이블 및 인덱스의 데이터는 데이터베이스에서 두 개 이상의 파일 그룹으로 분할될 수 있는 단위로 나뉩니다.The data of partitioned tables and indexes is divided into units that can be spread across more than one filegroup in a database. 자세한 내용은 Partitioned Tables and Indexes을 참조하세요.For more information, see Partitioned Tables and Indexes.
복제Replication 구독자에서 메모리 최적화 테이블에 대한 트랜잭션 복제 이외의 복제 구성은 메모리 최적화 테이블을 참조하는 테이블 또는 뷰와 호환되지 않습니다.Replication configurations, other than transactional replication to memory-optimized tables on subscribers, are incompatible with tables or views referencing memory-optimized tables.

메모리 최적화 파일 그룹이 있는 경우 sync_mode=’database snapshot’을 사용한 복제는 지원되지 않습니다.If there is a memory-optimized filegroup, replication using sync_mode=’database snapshot’ is not supported.

자세한 내용은 메모리 액세스에 최적화된 테이블 구독자로 복제를 참조하세요.For more information, see Replication to Memory-Optimized Table Subscribers.
미러링Mirroring MEMORY_OPTIMIZED_DATA 파일 그룹이 포함된 데이터베이스에는 데이터베이스 미러링이 지원되지 않습니다.Database mirroring is not supported for databases with a MEMORY_OPTIMIZED_DATA filegroup. 미러링에 대한 자세한 내용은 데이터베이스 미러링(SQL Server)을 참조하세요.For more information about mirroring, see Database Mirroring (SQL Server).
로그를 다시 작성Rebuild log 연결을 통해 로그를 다시 작성 하거나 ALTER DATABASE 데이터베이스는 MEMORY_OPTIMIZED_DATA 파일 그룹에 대해 지원 되지 않습니다.Rebuilding the log, either through attach or ALTER DATABASE, is not supported for databases with a MEMORY_OPTIMIZED_DATA filegroup.
연결된 서버Linked Server 메모리 최적화 테이블과 같은 쿼리 또는 트랜잭션에서는 연결된 서버에 액세스할 수 없습니다.You cannot access linked servers in the same query or transaction as memory-optimized tables. 자세한 내용은 연결된 서버(데이터베이스 엔진)를 참조하세요.For more information, see Linked Servers (Database Engine).
대량 로깅Bulk logging 데이터베이스의 복구 모델에 관계없이 메모리 최적화 영구 테이블에 대한 모든 작업은 항상 모두 기록됩니다.Regardless of the recovery model of the database, all operations on durable memory-optimized tables are always fully logged.
최소 로깅Minimal logging 최소 로깅은 메모리 최적화 테이블에 대해 지원되지 않습니다.Minimal logging is not supported for memory-optimized tables. 최소 로깅에 대한 자세한 내용은 트랜잭션 로그(SQL Server)대량 가져오기의 최소 로깅을 위한 선행 조건을 참조하세요.For more information about minimal logging, see The Transaction Log (SQL Server) and Prerequisites for Minimal Logging in Bulk Import.
변경 내용 추적Change tracking 변경 내용 추적은 메모리 내 OLTP 개체가 포함된 데이터베이스에서 사용할 수 있습니다.Change tracking can be enabled on a database with In-Memory OLTP objects. 그러나 메모리 최적화 테이블의 변경 내용은 추적되지 않습니다.However, changes in memory-optimized tables are not tracked.
DDL 트리거DDL triggers 메모리 내 OLTP 테이블 또는 고유하게 컴파일된 모듈에서는 데이터베이스 수준 및 서버 수준 DDL 트리거가 모두 지원되지 않습니다.Neither database-level nor server-level DDL triggers are supported with In-Memory OLTP tables or with natively compiled modules.
CDC(변경 데이터 캡처)Change Data Capture (CDC) 내부적으로 CDC는 DROP TABLE에 대해 DDL 트리거를 사용하므로 메모리 최적화 테이블을 포함하는 데이터베이스에서는 CDC를 사용할 수 없습니다.CDC cannot be used with a database that has memory-optimized tables, because internally CDC uses a DDL trigger for DROP TABLE.
파이버 모드Fiber mode 메모리 최적화 테이블에서는 파이버 모드가 지원되지 않습니다.Fiber mode is not supported with memory-optimized tables:

파이버 모드가 활성인 경우 메모리 최적화 파일 그룹이 포함된 데이터베이스를 만들 수 없고, 메모리 최적화 파일 그룹을 기존 데이터베이스에 추가할 수도 없습니다.If fiber mode is active, you cannot create databases with memory-optimized filegroups, nor can you add memory-optimized filegroups to existing databases.

메모리 최적화 파일 그룹이 포함된 데이터베이스가 있는 경우 파이버 모드를 활성화할 수 있습니다.You can enable fiber mode if there are databases with memory-optimized filegroups. 하지만 파이버 모드를 사용하려면 서버를 다시 시작해야 합니다.However, enabling fiber mode requires a server restart. 이러한 상황에서는 메모리 최적화 파일 그룹이 포함된 데이터베이스가 복구되지 않습니다.In that situation, databases with memory-optimized filegroups would fail to recover. 그리고 메모리 최적화 파일 그룹이 있는 데이터베이스를 사용하려면 파이버 모드를 사용하지 않도록 설정하라는 오류 메시지가 표시됩니다.Then you would see an error message suggesting that you disable fiber mode to use databases with memory-optimized filegroups.

파이버 모드가 활성이면 메모리 최적화 파일 그룹이 포함된 데이터베이스를 연결하거나 복원하는 작업이 실패합니다.If fiber mode is active, attaching and restoring a databases which has a memory-optimized filegroup fails. 데이터베이스는 주의 대상으로 표시됩니다.The databases would be marked as suspect.

자세한 내용은 lightweight pooling Server Configuration Option을 참조하세요.For more information, see lightweight pooling Server Configuration Option.
Service Broker 제한Service Broker limitation 고유하게 컴파일된 저장 프로시저에서 큐에 액세스할 수 없습니다.Cannot access a queue from a natively compiled stored procedure.

메모리 최적화 테이블에 액세스하는 트랜잭션에서 원격 데이터베이스에 있는 큐에 액세스할 수 없습니다.Cannot access a queue in a remote database in a transaction that accesses memory-optimized tables.
구독자에서 복제Replication on subscribers 구독자에서는 메모리 최적화 테이블에 대한 트랜잭션 복제가 지원되지만 몇 가지 제한 사항이 있습니다.Transactional replication to memory-optimized tables on subscribers is supported, but with some restrictions. 자세한 내용은 메모리 액세스에 최적화된 테이블 구독자로 복제를 참조하세요.For more information, see Replication to Memory-Optimized Table Subscribers

데이터베이스 간 쿼리 및 트랜잭션Cross-database queries and transcations

몇 가지 예외를 제외하고 데이터베이스간 트랜잭션은 지원되지 않습니다.With a few exceptions, cross-database transactions are not supported. 다음 테이블에서는 지원되는 경우 및 해당 제한 사항에 대해 설명합니다.The following table describes which cases are supported, and the corresponding restrictions. (참고 항목: 데이터베이스 간 쿼리)(See also, Cross-Database Queries.)

데이터베이스Databases 허용함Allowed DescriptionDescription
사용자 데이터베이스, 모델msdb.User databases, model, and msdb. 아니요No 대부분의 경우 데이터베이스 간 쿼리 및 트랜잭션은 지원되지 않습니다.In most cases, cross-database queries and transactions are not supported.

메모리 최적화 테이블이나 고유하게 컴파일된 저장 프로시저를 사용하는 쿼리는 다른 데이터베이스에 액세스할 수 없습니다.A query cannot access other databases if the query uses either a memory-optimized table or a natively compiled stored procedure. 이 제한 사항은 쿼리뿐 아니라 트랜잭션에도 적용됩니다.This restriction applies to transactions as well as to queries.

예외적으로 시스템 데이터베이스인 tempdbmaster에는 액세스할 수 있습니다.The exceptions are the system databases tempdb and master. 단, master 데이터베이스는 읽기 전용으로만 액세스할 수 있습니다.Here the master database is available for read-only access.
리소스 데이터베이스, tempdbResource database, tempdb Yes 메모리 내 OLTP 개체와 관련된 트랜잭션에서는 리소스tempdb 시스템 데이터베이스를 추가 제한 없이 사용할 수 있습니다.In a transaction that touches In-Memory OLTP objects, the Resource and tempdb system databases can be used without added restriction.

지원되지 않는 시나리오Scenarios Not Supported

  • CLR 저장 프로시저 내부에서 컨텍스트 연결을 사용하여 메모리 최적화 테이블에 액세스Accessing memory-optimized tables by using the context connection from inside CLR stored procedures.

  • 메모리 최적화 테이블에 액세스하는 쿼리의 키 집합 및 동적 커서.Keyset and dynamic cursors on queries accessing memory-optimized tables. 이러한 커서는 정적 및 읽기 전용으로 성능이 저하됩니다.These cursors are degraded to static and read-only.

  • MERGE INTOtarget(여기서 target은 메모리 최적화 테이블)은 사용할 수 없습니다.Using MERGE INTO target, where target is a memory-optimized table, is unsupported.

    • MERGE USINGsource 는 메모리 최적화 테이블에 대해 지원됩니다.MERGE USING source is supported for memory-optimized tables.
  • ROWVERSION(TIMESTAMP) 데이터 형식은 지원되지 않습니다.The ROWVERSION (TIMESTAMP) data type is not supported. 자세한 내용은 FROM(Transact-SQL)을 참조하세요.For more information, see FROM (Transact-SQL).

  • 자동 닫기는 MEMORY_OPTIMIZED_DATA 파일 그룹이 포함된 데이터베이스에서 지원되지 않습니다.Auto-close is not supported with databases that have a MEMORY_OPTIMIZED_DATA filegroup

  • 데이터베이스 스냅숏은 MEMORY_OPTIMIZED_DATA 파일 그룹이 있는 데이터베이스에 대해 지원되지 않습니다.Database snapshots as not supported for databases that have a MEMORY_OPTIMIZED_DATA filegroup.

  • 메모리 내 OLTP 개체에 대한 CREATE/ALTER/DROP과 같은 트랜잭션 DDL은 사용자 트랜잭션 내에서 지원되지 않습니다.Transactional DDL, such as CREATE/ALTER/DROP of In-Memory OLTP objects, is not supported inside user transactions.

  • 이벤트 알림Event notification.

  • PBM(정책 기반 관리).Policy-based management (PBM).

    • PBM의 방지 및 로그 전용 모드는 지원되지 않습니다.Prevent and log only modes of PBM are not supported. 서버에 이러한 정책이 있으면 메모리 내 OLTP DDL이 성공적으로 실행되지 않을 수 있습니다.Existence of such policies on the server may prevent In-Memory OLTP DDL from executing successfully. 요청 시 및 예약 시 모드는 지원됩니다.On demand and on schedule modes are supported.
  • 메모리 내 OLTP에서는 데이터베이스 포함(포함된 데이터베이스)이 지원되지 않습니다.Database containment (Contained Databases) is not supported with In-Memory OLTP.

    • 포함된 데이터베이스 인증이 지원됩니다.Contained database authentication is supported. 그러나 모든 메모리 내 OLTP 개체는 DMV(동적 관리 뷰) dm_db_uncontained_entities에 포함 위반으로 표시됩니다.However, all In-Memory OLTP objects are marked as breaking containment in the dynamic management view (DMV) dm_db_uncontained_entities.

관련 항목:See Also