메모리 액세스에 최적화된 시스템 버전 관리 임시 테이블 성능Memory-Optimized System-Versioned Temporal Tables Performance

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

이 항목에서는 시스템 버전 메모리 액세스에 최적화된 테이블을 사용할 때 고려해야 하는 몇 가지 성능 관련 사항에 대해 설명합니다.This topic discusses some specific performance considerations when using system-versioned memory-optimized temporal tables.

  • 기록 테이블은 자동으로 업데이트되므로 기존의 비임시 테이블에 시스템 버전 지정 기능을 추가하면 업데이트 및 삭제 작업의 성능에 영향을 줄 수 있습니다.When you add system-versioning to an existing non-temporal table expect performance impact on update and delete operations because history table is updated automatically.

  • 모든 업데이트 및 삭제 작업은 내부의 메모리 액세스에 최적화된 테이블에 기록되므로 작업 시 업데이트와 삭제를 많이 수행하는 경우 메모리가 예상보다 많이 사용될 수 있습니다.Every update and delete is recorded into internal memory-optimized history table, so you can experience unexpected memory consumption if your workload uses those two operations massively. 그러므로 다음 규칙을 따르는 것이 좋습니다.Therefore we advise you the following:

    • 공간을 정리하여 사용 가능한 RAM을 늘리기 위해 현재 테이블에서 많은 삭제를 수행하지 않습니다.Do not perform massive deletes from current table in order to increase available RAM by cleaning up the space. sp_xtp_flush_temporal_history를 호출하거나 SYSTEM_VERSIONING = OFF로 설정한 상태로 데이터를 여러 번의 일괄 처리로 삭제하고 각 일괄 처리 사이에 수동으로 호출한 데이터 플러시를 수행하는 것이 좋습니다.Consider deleting data in multiple batches with manually invoked data flush in between by invoking sp_xtp_flush_temporal_history, or while SYSTEM_VERSIONING = OFF.

    • 많은 테이블 업데이트를 동시에 수행하지 않습니다. 이렇게 하는 경우 비임시 메모리 액세스에 최적화된 테이블을 업데이트하는 데 필요한 것보다 메모리가 2배나 더 사용될 수 있습니다.Do not perform massive table updates at once as it can result in memory consumption that is twice the amount of memory required to update a non-termporal memory-optimized table. 이처럼 메모리 사용량이 2배로 증가하는 것은 일시적인 현상입니다. 내부 준비 테이블의 메모리 사용량을 안정적 상태의 예상 메모리 사용량 경계(현재 임시 테이블 메모리 사용량의 약 10%) 이내로 유지하기 위해 데이터 플러시 태스크가 정기적으로 수행되기 때문입니다.Doubled memory consumption is temporary because data flush task works regularly to keep memory consumption of internal staging table within projected boundaries in the steady state (around 10% of memory consumption of current temporal table). 업데이트를 통해 새로 추가된 열에 대한 기본값을 설정하는 등 대량의 업데이트를 수행할 때는 일괄 처리를 여러 번 진행하거나 SYSTEM_VERSIONING = OFF로 설정한 상태로 업데이트를 수행하는 것이 좋습니다.Consider doing massive updates in multiple batches or while SYSTEM_VERSIONING = OFF, such as using updates to set the defaults for newly added columns.

  • 데이터 플러시 태스크의 활성화 기간은 구성할 수 없지만, sp_xtp_flush_temporal_history로 설정한 상태로 데이터를 여러 번의 일괄 처리로 삭제하고 각 일괄 처리 사이에 수동으로 호출한 데이터 플러시를 수행하는 것이 좋습니다.Period of activation for the data flush task is not configurable but you can enforce the process by invoking sp_xtp_flush_temporal_history.

  • 특히 집계 함수나 기간 이동 함수를 사용하는 분석 쿼리를 기록 데이터에 대해 실행하려는 경우에는 디스크 기반 기록 테이블용 저장소 옵션으로 클러스터형 columnstore를 사용하는 것이 좋습니다.Consider using clustered columnstore as a storage option for disk-based history table, especially if you plan to run analytics queries on historical data that make use of aggregate or windowing functions. 클러스터형 columnstore는 효율적인 데이터 압축 기능을 제공하며 기록 데이터가 생성되는 방식에 적합한 삽입 중심 방식으로 동작하므로 이러한 경우 기록 테이블에 사용하면 효율적인 옵션입니다.In that case clustered columnstore will be an optimal choice for history table as it provides good data compression and behaves “insert-friendly” which is in alignment with how history data is being generated.

이 문서가 도움이 되었나요?Did this Article Help You? 여러분의 의견을 환영합니다.We’re Listening

어떤 정보를 찾고 계세요? 정보를 찾으셨나요?What information are you looking for, and did you find it? 여러분의 의견은 문서의 내용을 개선하는 데 많은 도움이 됩니다.We’re listening to your feedback to improve the content. 의견이 있으면 sqlfeedback@microsoft.comPlease submit your comments to sqlfeedback@microsoft.com

참고 항목See Also

메모리 액세스에 최적화된 테이블을 포함한 시스템 버전 임시 테이블 System-Versioned Temporal Tables with Memory-Optimized Tables
메모리 액세스에 최적화된 시스템 버전 임시 테이블 만들기 Creating a Memory-Optimized System-Versioned Temporal Table
메모리 액세스에 최적화된 시스템 버전 임시 테이블로 작업 Working with Memory-Optimized System-Versioned Temporal Tables
메모리 액세스에 최적화된 시스템 버전 임시 테이블 모니터링 Monitoring Memory-Optimized System-Versioned Temporal Tables
임시 테이블 Temporal Tables
임시 테이블 시스템 일관성 검사 Temporal Table System Consistency Checks
시스템 버전 관리된 임시 테이블에서 기록 데이터의 보존 관리 Manage Retention of Historical Data in System-Versioned Temporal Tables
임시 테이블 메타데이터 뷰 및 함수 Temporal Table Metadata Views and Functions