메모리 내 OLTP 및 메모리 최적화In-Memory OLTP and Memory-Optimization

적용 대상:Applies to: 예SQL ServerSQL Server(지원되는 모든 버전)yesSQL ServerSQL Server (all supported versions) 예Azure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database적용 대상:Applies to: 예SQL ServerSQL Server(지원되는 모든 버전)yesSQL ServerSQL Server (all supported versions) 예Azure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database

메모리 내 OLTPIn-Memory OLTP 는 트랜잭션 처리, 데이터 수집 및 데이터 로드, 일시적인 데이터 시나리오의 성능을 크게 개선할 수 있습니다.can significantly improve the performance of transaction processing, data ingestion and data load, and transient data scenarios. 기본 코드 및 정보를 즉시 활용하려면 직접 작성한 메모리 최적화 테이블 및 고유하게 컴파일된 저장 프로시저를 빠르게 테스트해야 합니다. 자세한 내용은 다음을 참조하세요.To jump into the basic code and knowledge you need to quickly test your own memory-optimized table and natively compiled stored procedure, see

SQL Server의 메모리 내 OLTP를 설명하고 성능상의 이점을 보여 주는 17분 분량의 비디오가 YouTube에 업로드되었습니다.We have uploaded to YouTube a 17-minute video explaining In-Memory OLTP on SQL Server, and demonstrating the performance benefits.

메모리 내 OLTP 및 이 기술의 성능 이점을 보여 주는 시나리오에 대한 자세한 내용은 다음을 참조하세요.For a more detailed overview of In-Memory OLTP and a review of scenarios that see performance benefits from the technology:

메모리 내 OLTPIn-Memory OLTP 는 트랜잭션 처리 성능을 향상시키는 SQL ServerSQL Server 기술입니다.Note that 메모리 내 OLTPIn-Memory OLTP is the SQL ServerSQL Server technology for improving performance of transaction processing. 보고 및 분석 쿼리 성능을 향상시키는 SQL ServerSQL Server 기술은 Columnstore 인덱스 가이드를 참조하세요.For the SQL ServerSQL Server technology that improves reporting and analytical query performance see Columnstore Indexes Guide.

Azure SQL DatabaseAzure SQL Database는 물론 SQL Server 2016(13.x)SQL Server 2016 (13.x)SQL Server 2017(14.x)SQL Server 2017 (14.x)의 메모리 내 OLTP는 다양한 방식으로 개선되었습니다.Several improvements have been made to In-Memory OLTP in SQL Server 2016(13.x)SQL Server 2016 (13.x) and SQL Server 2017(14.x)SQL Server 2017 (14.x), as well as in Azure SQL DatabaseAzure SQL Database. Transact-SQL 노출 영역이 늘어나 데이터베이스 애플리케이션을 보다 쉽게 마이그레이션할 수 있습니다.The Transact-SQL surface area has been increased to make it easier to migrate database applications. 메모리 최적화 테이블 및 고유하게 컴파일된 저장 프로시저에 대한 ALTER 작업 수행이 추가로 지원되어 애플리케이션을 보다 쉽게 관리할 수 있습니다.Support for performing ALTER operations for memory-optimized tables and natively compiled stored procedures has been added, to make it easier to maintain applications.

참고

사용해 보기Try it out

메모리 내 OLTP는 프리미엄 및 중요 비즈니스용 계층 Azure SQL 데이터베이스 및 탄력적 풀에서 사용할 수 있습니다.In-Memory OLTP is available in Premium and Business Critical tier Azure SQL databases and elastic pools. Azure SQL Database의 Columnstore 및 메모리 내 OLTP를 시작하려면 SQL Database에서 메모리 내 기술을 사용하여 성능 최적화를 참조하세요.To get started with In-Memory OLTP, as well as Columnstore in Azure SQL Database, see Optimize Performance using In-Memory Technologies in SQL Database.

섹션 내용In this section

이 섹션에서는 다음 항목을 다룹니다.This section provides includes the following topics:

항목Topic DescriptionDescription
빠른 시작 1: 더 빠른 Transact-SQL 성능을 위한 메모리 내 OLTP 기술Quick Start 1: In-Memory OLTP Technologies for Faster Transact-SQL Performance 메모리 내 OLTP 살펴보기Delve right into In-Memory OLTP
개요 및 사용 시나리오Overview and Usage Scenarios 메모리 내 OLTP의 정의와 성능 이점을 보여 주는 시나리오에 대한 개요입니다.Overview of what In-Memory OLTP is, and what are the scenarios that see performance benefits.
메모리 액세스에 최적화된 테이블 사용을 위한 요구 사항Requirements for Using Memory-Optimized Tables 하드웨어 및 소프트웨어 요구 사항과 메모리 최적화 테이블의 사용 지침에 대해 설명합니다.Discusses hardware and software requirements and guidelines for using memory-optimized tables.
메모리 내 OLTP 코드 예제In-Memory OLTP Code Samples 메모리 최적화 테이블을 만들고 사용하는 방법을 보여 주는 코드 예제가 포함되어 있습니다.Contains code samples that show how to create and use a memory-optimized table.
메모리 최적화 테이블Memory-Optimized Tables 메모리 최적화 테이블을 소개합니다.Introduces memory-optimized tables.
메모리 액세스에 최적화된 테이블 변수Memory-Optimized Table Variables 기존의 테이블 변수 대신 메모리 최적화 테이블 변수를 사용하여 tempdb 사용을 줄이는 방법을 보여주는 코드 예제입니다.Code example showing how to use a memory-optimized table variable instead of a traditional table variable to reduce tempdb use.
메모리 액세스에 최적화된 테이블의 인덱스Indexes on Memory-Optimized Tables 메모리 최적화 인덱스를 소개합니다.Introduces memory-optimized indexes.
고유하게 컴파일된 저장 프로시저Natively Compiled Stored Procedures 고유하게 컴파일된 저장 프로시저를 소개합니다.Introduces natively compiled stored procedures.
메모리 내 OLTP의 메모리 관리Managing Memory for In-Memory OLTP 시스템의 메모리 사용을 이해하고 관리하는 방법에 대해 설명합니다.Understanding and managing memory usage on your system.
메모리 최적화 개체에 대한 스토리지 만들기 및 관리Creating and Managing Storage for Memory-Optimized Objects 메모리 최적화 테이블의 트랜잭션에 대한 정보를 저장하는 데이터 및 델타 파일에 대해 설명합니다.Discusses data and delta files, which store information about transactions in memory-optimized tables.
메모리 액세스에 최적화된 테이블의 백업, 복원 및 복구Backup, Restore, and Recovery of Memory-Optimized Tables 메모리 최적화 테이블의 백업, 복원 및 복구를 논의합니다.Discusses backup, restore, and recovery for memory-optimized tables.
메모리 내 OLTP에 대한 Transact-SQL 지원Transact-SQL Support for In-Memory OLTP Transact-SQLTransact-SQL 에 대한 메모리 내 OLTPIn-Memory OLTP지원을 논의합니다.Discusses Transact-SQLTransact-SQL support for 메모리 내 OLTPIn-Memory OLTP.
메모리 내 OLTP 데이터베이스에 대한 고가용성 지원High Availability Support for In-Memory OLTP databases 메모리 내 OLTPIn-Memory OLTP의 가용성 그룹 및 장애 조치(failover) 클러스터링을 논의합니다.Discusses availability groups and failover clustering in 메모리 내 OLTPIn-Memory OLTP.
메모리 내 OLTP에 대한 SQL Server 지원SQL Server Support for In-Memory OLTP 메모리 최적화 테이블을 지원하는 새 구문/기능과 업데이트된 구문/기능을 나열합니다.Lists new and updated syntax and features supporting memory-optimized tables.
메모리 내 OLTP로 마이그레이션Migrating to In-Memory OLTP 디스크 기반 테이블을 메모리 최적화 테이블로 마이그레이션하는 방법에 대해 설명합니다.Discusses how to migrate disk-based tables to memory-optimized tables.
   

이 섹션에서는 SQL Server의 I메모리 내 OLTP에 대한 정보가 포함된 다른 웹 사이트의 링크를 제공합니다.This section provides links to other websites that contain information about In-Memory OLTP on SQL Server.

인덱싱된 17분 분량의 비디오17 minute video, indexed

  • 비디오 제목:   SQL Server 2016의 메모리 내 OLTPVideo title:   In-Memory OLTP in SQL Server 2016
  • 게시 날짜:   2019-03-10, YouTube.com.Published date:   2019-03-10, on YouTube.com.
  • 길이:   17:32    (비디오 링크는 다음 인덱스 참조)Duration:   17:32     (See the following Index for links into the video.)
  • 호스팅 담당자:   Jos de Bruijn, SQL Server 선임 프로그램 관리자Hosted by:   Jos de Bruijn, Senior Program Manager on SQL Server

데모 다운로드 가능Demo can be downloaded

시간이 08:09로 표시되면 비디오에서 데모를 두 번 실행합니다.At the time mark 08:09, the video runs a demonstration twice. 비디오에 사용된 실행 가능한 성능 데모의 소스 코드는 다음 링크에서 다운로드할 수 있습니다.You can download the source code for runnable performance demo that is used in the video, from the following link:

비디오에 표시되는 일반적인 단계는 다음과 같습니다.The general steps seen in the video are as follows:

  1. 먼저 데모는 일반 테이블로 실행됩니다.First the demo is run with a regular table.
  2. 그 다음 SQL Server Management Studio(SSMS.exe)에서 몇 번의 클릭으로 생성하여 채울 수 있는 메모리 최적화 테이블 버전을 확인할 수 있습니다.Next we see a memory-optimized edition of the table being created and populated by a few clicks in SQL Server Management Studio (SSMS.exe).
  3. 그런 다음 메모리 최적화 테이블을 사용하여 데모를 다시 실행합니다.Then the demo is rerun with the memory-optimized table. 속도가 크게 향상되었음을 확인할 수 있습니다.An enormous speed improvement is measured.

비디오의 각 섹션에 대한 인덱스Index to each section in the video

시간 표시 링크Time mark link 섹션 제목Section title
A.  00:00A.  00:00 시작.The beginning.

B.  00:56B.  00:56

고객이 메모리 내 OLTP를 적용해야 하는 이유는 다음과 같습니다.Why customers should care about In-Memory OLTP.
    01:03    01:03 최신 하드웨어에는 최신 데이터베이스 시스템 아키텍처가 필요합니다.Modern hardware requires modern architecture of database system.
    02:10    02:10 생성되는 데이터가 급증하여 작업을 즉시 진행해야 합니다(대기 시간 짧음).Explosion in data being generated; operations need to be instant (low latency).
    03:19    03:19 TCO 절감 - 보유한 리소스로 더 많은 작업을 수행할 수 있습니다.Reduce TCO - do more with the resources you have.

C.  03:33C.  03:33

메모리 내 OLTP의 의미What In-Memory OLTP is.
메모리 최적화 기술을 사용하여 성능 최적화Performance optimized using memory-optimized technology.
    05:03    05:03 최대 30배 빠른 트랜잭션 처리Up to 30X faster transaction processing.
    05:22    05:22 완전한 내구성 – 서버 오류가 발생해도 데이터는 유지됩니다.Fully durable - data survives server failures.
    06:15    06:15 SQL Server에 완전히 통합되었습니다.Fully integrated in SQL Server. 따라서 새로운 언어 또는 도구를 배울 필요가 없습니다.Thus no new languages or tools to learn.
    07:22    07:22 SQL Server 2014에서 처음 릴리스되었지만 2016에 주요 개선 사항이 적용되었습니다.First released in SQL Server 2014, but major improvements in 2016.
    07:58    07:58 Microsoft Azure SQL Database에서도 사용할 수 있습니다(클라우드).Available in Azure SQL Database too (in the cloud).

D.  08:09D.  08:09

성능 데모.Performance demonstration.
일반 테이블을 사용하여 데모를 실행합니다.Run the demo with a regular table.
    09:11    09:11 SSMS 바로 가기 메뉴: 보고서 > 트랜잭션 성능 분석SSMS context menu: Reports > Transaction Performance Analysis
    10:38    10:38 SSMS 바로 가기 메뉴: 메모리 최적화 관리자SSMS context menu: Memory Optimization Advisor
    실제로 일반 테이블에서 메모리 최적화 테이블을 생성하고 데이터를 마이그레이션합니다.    Actually create a memory-optimized table from a regular table, plus migrate the data.
    11:28    11:28 데모를 다시 실행하고 45배 향상된 속도를 경험하세요.Rerun the demo, see 45X speed improvement.

E.  12:17E.  12:17

SQL Server 2016에서 메모리 내 OLTP를 2014보다 더 쉽게 사용할 수 있습니다.Easier to use In-Memory OLTP in SQL Server 2016 (compared to 2014).
    12:43    12:43 앱 마이그레이션에 도움이 되는 간략한 분석.Simplified analysis to help with app migration.
    13:03    13:03 Transact-SQL 언어 지원의 개선(예: 외래 키 및 트리거)으로 앱 마이그레이션의 복잡성이 줄어들었습니다.Reduced complexity of app migration through increased Transact-SQL language support (for example, with foreign keys and triggers).
    13:56    13:56 관리 효율성 향상.Improved manageability.
    예를 들어 스키마 및 인덱스 변경, 통계 자동 업데이트 등이 있습니다.    For example, change schema and indexes, auto-update of statistics.

F.  14:46F.  14:46

확장성 향상.Improved scalability.
    15:12    15:12 대규모 메모리 최적화 테이블(데이터베이스 당 최대 2TB).Large memory-optimized tables (up to 2TB per database).
    15:34    15:34 더 효과적인 크기 조정.Even better scaling.
    16:41    16:41 이미 보유한 리소스로 더 많은 작업을 수행할 수 있습니다!Do more with the resources you already have!

G.  16:53G.  16:53

최종 설명.Final comments. (17:32에서 종료)(Ends at 17:32.)
   

참고 항목See also

데이터베이스 기능Database Features