OLTP in-memory e otimização de memóriaIn-Memory OLTP and Memory-Optimization

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure SQL nãoAzure Synapse Analytics (SQL DW) nãoData Warehouse Paralelo APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

OOLTP na memóriaIn-Memory OLTP pode melhorar significativamente o desempenho de processamento de transações, inclusão de dados e carregamento de dados, e cenários de dados temporário.OLTP na memóriaIn-Memory OLTP can significantly improve the performance of transaction processing, data ingestion and data load, and transient data scenarios. Para ir diretamente para o código básico e o conhecimento necessário para testar rapidamente sua própria tabela com otimização de memória e o procedimento armazenado nativamente, vejaTo jump into the basic code and knowledge you need to quickly test your own memory-optimized table and natively compiled stored procedure, see

Carregamos no YouTube um vídeo de 17 minutos explicando o OLTP in-memory no SQL Server e demonstrando os benefícios de desempenho.We have uploaded to YouTube a 17-minute video explaining In-Memory OLTP on SQL Server, and demonstrating the performance benefits.

Para obter uma visão geral mais detalhada do OLTP in-memory e uma análise de cenários que desfrutam dos benefícios de desempenho da tecnologia:For a more detailed overview of In-Memory OLTP and a review of scenarios that see performance benefits from the technology:

Observe que OLTP na memóriaIn-Memory OLTP é a tecnologia do SQL ServerSQL Server para melhoria de desempenho do processamento de transações.Note that OLTP na memóriaIn-Memory OLTP is the SQL ServerSQL Server technology for improving performance of transaction processing. Para obter a tecnologia do SQL ServerSQL Server que melhora o desempenho de consulta de relatório e analítica, veja Guia de índices columnstore.For the SQL ServerSQL Server technology that improves reporting and analytical query performance see Columnstore Indexes Guide.

Várias melhorias foram feitas no OLTP in-memory do SQL Server 2016 (13.x)SQL Server 2016 (13.x) e do SQL Server 2017 (14.x)SQL Server 2017 (14.x), bem como do Banco de Dados SQL do AzureAzure SQL Database.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 Banco de Dados SQL do AzureAzure SQL Database. A área de superfície do Transact-SQL foi aumentada para facilitar a migração de aplicativos de banco de dados.The Transact-SQL surface area has been increased to make it easier to migrate database applications. O suporte para operações de ALTER para tabelas com otimização de memória e procedimentos armazenados compilados nativamente foi adicionado para facilitar a manutenção de aplicativos.Support for performing ALTER operations for memory-optimized tables and natively compiled stored procedures has been added, to make it easier to maintain applications.

Observação

ExperimenteTry it Out!

O OLTP in-memory está disponível nas camadas Premium e Comercialmente Crítica de bancos de dados SQL do Azure e em pools elásticos.In-Memory OLTP is available in Premium and Business Critical tier Azure SQL databases and elastic pools. Para começar a usar o OLTP in-memory, bem como o Columnstore no Banco de Dados SQL do Azure, veja Otimizar o desempenho usando tecnologias in-memory no Banco de Dados SQL.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.

Nesta seçãoIn this section

Esta seção inclui os seguintes tópicos:This section provides includes the following topics:

TópicoTopic DESCRIÇÃODescription
Início rápido 1: tecnologias do OLTP in-memory para um desempenho mais rápido do Transact-SQL
Quick Start 1: In-Memory OLTP Technologies for Faster Transact-SQL Performance Delve diretamente no OLTP in-memoryDelve right into In-Memory OLTP
Visão geral e cenários de uso
Overview and Usage Scenarios Visão geral do que é o OLTP in-memory e quais são os cenários que desfrutam dos benefícios de desempenho.Overview of what In-Memory OLTP is, and what are the scenarios that see performance benefits.
Requisitos para usar tabelas com otimização de memória
Requirements for Using Memory-Optimized Tables Aborda os requisitos de hardware e software, e as diretrizes para usar tabelas com otimização de memória.Discusses hardware and software requirements and guidelines for using memory-optimized tables.
Exemplos de código do OLTP in-memory
In-Memory OLTP Code Samples Contém exemplos de código que mostram como criar e usar uma tabela com otimização de memória.Contains code samples that show how to create and use a memory-optimized table.
Memory-Optimized Tables
Memory-Optimized Tables Apresenta tabelas com otimização de memória.Introduces memory-optimized tables.
Variáveis de tabela com otimização de memóriaMemory-optimized table variables Exemplo de código mostrando como usar uma variável de tabela com otimização de memória em vez de uma variável de tabela tradicional para reduzir o uso de tempdb.Code example showing how to use a memory-optimized table variable instead of a traditional table variable to reduce tempdb use.
Índices em tabelas com otimização de memóriaIndexes on memory-optimized tables. Incorpora índices com otimização de memória.Introduces memory-optimized indexes.
Procedimentos armazenados compilados nativamenteNatively compiled stored procedures. Apresenta procedimentos armazenados compilados de modo nativo.Introduces natively compiled stored procedures.
Gerenciando memória para OLTP in-memory
Managing Memory for In-Memory OLTP Compreendendo e gerenciando o uso de memória no sistema.Understanding and managing memory usage on your system.
Criando e gerenciando armazenamento para objetos com otimização de memória
Creating and Managing Storage for Memory-Optimized Objects A aborda os arquivos delta e de dados, que armazenam informações sobre transações em tabelas com otimização de memória.Discusses data and delta files, which store information about transactions in memory-optimized tables.
Backup, restauração e recuperação de tabelas com otimização de memória
Backup, Restore, and Recovery of Memory-Optimized Tables Discute backup, restauração e recuperação de tabelas com otimização de memória.Discusses backup, restore, and recovery for memory-optimized tables.
Suporte ao Transact-SQL para OLTP in-memory
Transact-SQL Support for In-Memory OLTP Discute o suporte do Transact-SQLTransact-SQL para OLTP na memóriaIn-Memory OLTP.Discusses Transact-SQLTransact-SQL support for OLTP na memóriaIn-Memory OLTP.
Suporte de alta disponibilidade para bancos de dados do OLTP in-memory
High Availability Support for In-Memory OLTP databases Discute grupos de disponibilidade e clustering de failover no OLTP na memóriaIn-Memory OLTP.Discusses availability groups and failover clustering in OLTP na memóriaIn-Memory OLTP.
Suporte ao SQL Server para OLTP na memória
SQL Server Support for In-Memory OLTP Lista a sintaxe nova e atualizada, e os recursos que oferecem suporte a tabelas com otimização de memória.Lists new and updated syntax and features supporting memory-optimized tables.
Migrando para OLTP na memória
Migrating to In-Memory OLTP. Aborda como migrar tabelas baseadas em disco para tabelas com otimização de memória.Discusses how to migrate disk-based tables to memory-optimized tables.
   

Esta seção fornece links para outros sites que contêm informações sobre OLTP in-memory no SQL Server.This section provides links to other websites that contain information about In-Memory OLTP on SQL Server.

vídeo de 17 minutos, indexado

17 minute video, indexed

  • Título do vídeo:   OLTP in-memory no SQL Server 2016Video title:   In-Memory OLTP in SQL Server 2016
  • Data de publicação:   10/03/2019, em YouTube.com.Published date:   2019-03-10, on YouTube.com.
  • Duração:   17:32     (Confira o seguinte Índice para obter links para o vídeo.)Duration:   17:32     (See the following Index for links into the video.)
  • Hospedado por:   Jos de Bruijn, gerente de programa sênior no SQL ServerHosted by:   Jos de Bruijn, Senior Program Manager on SQL Server

A demonstração pode ser baixadaDemo can be downloaded

Na marcação de tempo 08:09, o vídeo executa uma demonstração duas vezes.At the time mark 08:09, the video runs a demonstration twice. Você pode baixar o código-fonte para a demonstração de desempenho executável usada no vídeo do seguinte link:You can download the source code for runnable performance demo that is used in the video, from the following link:

As etapas gerais vistas no vídeo são as seguintes:The general steps seen in the video are as follows:

  1. Primeiro, a demonstração é executada com uma tabela normal.First the demo is run with a regular table.
  2. Em seguida, vemos uma edição com otimização de memória da tabela ser criada e populada usando alguns cliques no 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. Em seguida, a demonstração é executada novamente com a tabela com otimização de memória.Then the demo is rerun with the memory-optimized table. Uma enorme melhoria na velocidade é medida.An enormous speed improvement is measured.

Índice para cada seção no vídeoIndex to each section in the video

Link da marca de tempoTime mark link Título da seçãoSection title
A.  00:00A.  00:00 O início.The beginning.

B.  00:56B.  00:56

Por que os clientes devem se importar com o OLTP in-memory.Why customers should care about In-Memory OLTP.
    01:03(0.10.3) O hardware moderno requer uma arquitetura moderna de sistema de banco de dados.Modern hardware requires modern architecture of database system.
    02:10

02:10 | Explosão nos dados gerados; as operações precisam ser instantâneas (baixa latência).Explosion in data being generated; operations need to be instant (low latency). | |     03:19

03:19 | Redução do TCO – fazer mais com os recursos que você tem.Reduce TCO - do more with the resources you have. | |
C.  03:33C.  03:33 |
O que é OLTP in-memory.What In-Memory OLTP is.
Desempenho otimizado usando tecnologia com otimização de memória.Performance optimized using memory-optimized technology. | |     05:03

05:03 | Processamento de transações até 30 vezes mais rápido.Up to 30X faster transaction processing. | |     05:22

05:22 | Os dados são totalmente duráveis; sobrevivem a falhas do servidor.Fully durable - data survives server failures. | |     06:15

06:15 | Totalmente integrado ao SQL Server.Fully integrated in SQL Server. Portanto, não há novas linguagens ou ferramentas para aprender.Thus no new languages or tools to learn. | |     07:22

07:22 | Lançado pela primeira vez no SQL Server 2014, mas com grandes melhorias em 2016.First released in SQL Server 2014, but major improvements in 2016. | |     07:58

07:58 | Disponível também no Banco de Dados SQL do Azure (na nuvem).Available in Azure SQL Database too (in the cloud). | |
D.  08:09D.  08:09 |
Demonstração de desempenho.Performance demonstration.
Executar a demonstração com uma tabela normal.Run the demo with a regular table. | |     09:11

09:11 | Menu de contexto do SSMS: Relatórios > Análise de desempenho da transaçãoSSMS context menu: Reports > Transaction Performance Analysis | |     10:38

10:38 | Menu de contexto do SSMS: Orientador de otimização da memóriaSSMS context menu: Memory Optimization Advisor
    De fato criar uma tabela com otimização de memória usando uma tabela normal, além de migrar os dados.     Actually create a memory-optimized table from a regular table, plus migrate the data. | |     11:28112.8 | Executar a demonstração novamente, observar melhoria de 45 vezes na velocidade.Rerun the demo, see 45X speed improvement. | |
E.  12:17E.  12:17 |
É mais fácil usar o OLTP in-memory no SQL Server 2016 (em comparação com o 2014).Easier to use In-Memory OLTP in SQL Server 2016 (compared to 2014). | |     12:431.243 | Análise simplificada para ajudar na migração do aplicativo.Simplified analysis to help with app migration. | |     13:031,303 | Redução da complexidade da migração de aplicativos por meio do aumento do suporte à linguagem Transact-SQL (por exemplo, com chaves estrangeiras e gatilhos).Reduced complexity of app migration through increased Transact-SQL language support (for example, with foreign keys and triggers). | |     13:56

13:56 | Melhor capacidade de gerenciamento.Improved manageability.
    Por exemplo, alterar esquema e índices, atualização automática de estatísticas.     For example, change schema and indexes, auto-update of statistics. | |
F.  14:46F.  14:46 |
Melhor escalabilidade.Improved scalability. | |     15:12

15:12 | Grandes tabelas com otimização de memória (até 2 TB por banco de dados).Large memory-optimized tables (up to 2TB per database). | |     15:34

15:34 | Dimensionamento ainda melhor.Even better scaling. | |     16:41

16:41 | Faça mais com os recursos que você já tem!Do more with the resources you already have! | |
G.  16:53G.  16:53 |
Comentários finais.Final comments. (Termina em 17:32.)(Ends at 17:32.) | |   |   |

Confira tambémSee also

Recursos de banco de dadosDatabase features