메모리 내 OLTP에 대해 지원되지 않는 SQL Server 기능

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

이 항목에서는 메모리 최적화 개체와 함께 사용할 수 없는 SQL Server 기능에 대해 설명합니다. 또한 마지막 섹션에는 메모리 내 OLTP에 대해 지원되지 않았지만 나중에 지원되는 기능이 나열되어 있습니다.

메모리 내 OLTP에 대해 지원되지 않는 SQL Server 기능

메모리 최적화 개체(메모리 최적화 데이터 파일 그룹 포함)가 있는 데이터베이스에서는 다음 SQL Server 기능이 지원되지 않습니다.

지원되지 않는 기능 기능 설명
메모리 최적화 테이블에 대한 데이터 압축입니다. 데이터 압축 기능을 사용하여 데이터베이스 내의 데이터를 압축하고 데이터베이스 크기를 줄일 수 있습니다. 자세한 내용은 Data Compression을 참조하세요.
메모리 최적화 테이블 및 HASH 인덱스 및 비클러스터형 인덱스의 분할 분할 테이블 및 인덱스의 데이터는 데이터베이스에서 두 개 이상의 파일 그룹으로 분할될 수 있는 단위로 나뉩니다. 자세한 내용은 Partitioned Tables and Indexes을 참조하세요.
복제 구독자의 메모리 최적화 테이블에 대한 트랜잭션 복제 이외의 복제 구성은 메모리 최적화 테이블을 참조하는 테이블 또는 뷰와 호환되지 않습니다.

메모리 최적화 파일 그룹이 있는 경우 sync_mode='database snapshot'을 사용한 복제는 지원되지 않습니다.

자세한 내용은 메모리 최적화 테이블 구독자에 대한 복제를 참조 하세요.
미러링 MEMORY_OPTIMIZED_DATA 파일 그룹이 있는 데이터베이스에는 데이터베이스 미러링이 지원되지 않습니다. 미러링에 대한 자세한 내용은 데이터베이스 미러링(SQL Server)을 참조하세요.
로그 다시 작성 연결 또는 ALTER DATABASE를 통해 로그를 다시 빌드하는 것은 MEMORY_OPTIMIZED_DATA 파일 그룹이 있는 데이터베이스에는 지원되지 않습니다.
연결된 서버 메모리 최적화 테이블과 동일한 쿼리 또는 트랜잭션에서 연결된 서버에 액세스할 수 없습니다. 자세한 내용은 연결된 서버(데이터베이스 엔진)를 참조하세요.
대량 로깅 데이터베이스의 복구 모델에 관계없이 지속성 메모리 최적화 테이블에 대한 모든 작업은 항상 완전히 기록됩니다.
최소 로깅 메모리 최적화 테이블에는 최소 로깅이 지원되지 않습니다. 최소 로깅에 대한 자세한 내용은 대량 가져오기에서 최소 로깅 에 대한 트랜잭션 로그(SQL Server)필수 구성 요소를 참조하세요.
Change tracking 메모리 최적화 테이블에는 변경 내용 추적이 지원되지 않습니다.
DDL 트리거 데이터베이스 수준 트리거 및 서버 수준 DDL 트리거는 메모리 내 OLTP 테이블 또는 고유하게 컴파일된 모듈에서 지원되지 않습니다.
CDC(변경 데이터 캡처) SQL Server 2017 CU15 이상에서는 메모리 최적화 테이블이 있는 데이터베이스에서 CDC를 사용하도록 설정합니다. 데이터베이스 및 데이터베이스의 모든 디스크 테이블에만 적용됩니다. 이전 SQL Server 버전의 경우 내부적으로 CDC는 DROP TABLE에 대해 DDL 트리거를 사용하므로 메모리 최적화 테이블을 포함하는 데이터베이스에서는 CDC를 사용할 수 없습니다.
파이버 모드 파이버 모드는 메모리 최적화 테이블에서 지원되지 않습니다.

파이버 모드가 활성화된 경우 메모리 최적화 파일 그룹을 사용하여 데이터베이스를 만들 수 없으며 메모리 최적화 파일 그룹을 기존 데이터베이스에 추가할 수도 없습니다.

메모리 최적화 파일 그룹이 있는 데이터베이스가 있는 경우 파이버 모드를 사용하도록 설정할 수 있습니다. 그러나 파이버 모드를 사용하도록 설정하려면 서버를 다시 시작해야 합니다. 이 경우 메모리 최적화 파일 그룹이 있는 데이터베이스는 복구되지 않습니다. 그런 다음 메모리 최적화 파일 그룹과 함께 데이터베이스를 사용하도록 파이버 모드를 사용하지 않도록 설정하는 오류 메시지가 표시됩니다.

파이버 모드가 활성화된 경우 메모리 최적화 파일 그룹이 있는 데이터베이스를 연결하고 복원하지 못합니다. 데이터베이스는 주의 대상으로 표시됩니다.

자세한 내용은 간단한 풀링 서버 구성 옵션을 참조 하세요.
Service Broker 제한 사항 고유하게 컴파일된 저장 프로시저에서 큐에 액세스할 수 없습니다.

메모리 최적화 테이블에 액세스하는 트랜잭션에서 원격 데이터베이스의 큐에 액세스할 수 없습니다.
구독자에서 복제 구독자의 메모리 최적화 테이블에 대한 트랜잭션 복제는 지원되지만 몇 가지 제한 사항이 있습니다. 자세한 내용은 메모리 최적화 테이블 구독자에 대한 복제를 참조 하세요.

데이터베이스 간 쿼리 및 트랜잭션

몇 가지 예외를 제외하고 데이터베이스 간 트랜잭션은 지원되지 않습니다. 다음 표에서는 지원되는 사례 및 해당 제한 사항에 대해 설명합니다. (참고 항목: 데이터베이스 간 쿼리)

데이터베이스 허용됨 설명
사용자 데이터베이스, 모델msdb. 없음 대부분의 경우 데이터베이스 간 쿼리 및 트랜잭션은 지원되지 않습니다 .

쿼리에서 메모리 최적화 테이블 또는 고유하게 컴파일된 저장 프로시저를 사용하는 경우 쿼리는 다른 데이터베이스에 액세스할 수 없습니다. 이 제한은 트랜잭션 및 쿼리에 적용됩니다.

예외는 시스템 데이터베이스 tempdbmaster입니다. 여기서 마스터 데이터베이스는 읽기 전용 액세스에 사용할 수 있습니다.
리소스 데이터베이스, tempdb 메모리 내 OLTP 개체 를 터치하는 트랜잭션에서 리소스tempdb 시스템 데이터베이스는 추가 제한 없이 사용할 수 있습니다.

지원되지 않는 시나리오

  • CLR 저장 프로시저 내에서 컨텍스트 연결을 사용하여 메모리 최적화 테이블에 액세스합니다.

  • 메모리 최적화 테이블에 액세스하는 쿼리의 키 집합 및 동적 커서입니다. 이러한 커서는 정적 및 읽기 전용으로 저하됩니다.

  • 대상이 메모리 최적화 테이블인 MERGE INTO대상을 사용하는 것은 지원되지 않습니다.

    • MERGE USING원본 은 메모리 최적화 테이블에 대해 지원됩니다.
  • ROWVERSION(TIMESTAMP) 데이터 형식은 지원되지 않습니다. 자세한 내용은 FROM(Transact-SQL)을 참조하세요.

  • MEMORY_OPTIMIZED_DATA 파일 그룹이 있는 데이터베이스에서는 자동 닫기를 지원하지 않습니다.

  • 메모리 내 OLTP 개체에 대한 CREATE/ALTER/DROP과 같은 트랜잭션 DDL은 사용자 트랜잭션 내에서 지원되지 않습니다.

  • 이벤트 알림

  • PBM(정책 기반 관리).

    • PBM의 방지 및 로그 전용 모드는 지원되지 않습니다. 서버에 이러한 정책이 존재하면 메모리 내 OLTP DDL이 성공적으로 실행되지 않을 수 있습니다. 주문형 및 예약 모드가 지원됩니다.
  • 데이터베이스 포함(포함된 데이터베이스)은 메모리 내 OLTP에서 지원되지 않습니다.

    • 포함된 데이터베이스 인증이 지원됩니다. 그러나 모든 메모리 내 OLTP 개체는 DMV(동적 관리 뷰) dm_db_uncontained_entities 호환성이 손상되는 포함으로 표시됩니다.

최근 추가된 지원

SQL Server의 최신 릴리스가 이전에 지원되지 않았던 기능에 대한 지원을 추가하는 경우도 있습니다. 이 섹션에서는 메모리 내 OLTP에 대해 지원되지 않았지만 나중에 메모리 내 OLTP에서 지원되는 기능을 나열합니다.

다음 표 에서 버전 값은 (15.x) Transact-SQL 문에서 반환되는 값을 참조합니다 SELECT @@Version;.

기능 이름 SQL Server 버전 주석
데이터베이스 스냅샷 2019(15.x) 이제 MEMORY_OPTIMIZED_DATA 파일 그룹이 있는 데이터베이스에 대해 데이터베이스 스냅샷이 지원됩니다.

참고 항목