Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Novidades no SQL Server 2014 (12.x), In-Memory OLTP pode melhorar significativamente o desempenho do aplicativo de banco de dados OLTP. In-Memory OLTP é um mecanismo de banco de dados com otimização de memória integrado ao mecanismo do SQL Server, otimizado para OLTP.
|
Deseja experimentar o SQL Server 2016? Inscreva-se no Microsoft Azure e acesse Aqui para criar uma Máquina Virtual com o SQL Server 2016 já instalado. Você pode excluir a Máquina Virtual quando terminar. |
Para usar In-Memory OLTP, defina uma tabela fortemente acessada como otimizada para memória. As tabelas com otimização de memória são totalmente transacionais, duráveis e são acessadas usando Transact-SQL da mesma forma que tabelas baseadas em disco. Uma consulta pode referenciar tabelas com otimização de memória e tabelas baseadas em disco. Uma transação pode atualizar dados em tabelas com otimização de memória e tabelas baseadas em disco. Procedimentos armazenados que fazem referência apenas a tabelas com otimização de memória podem ser compilados nativamente no código do computador para aprimoramentos de desempenho adicionais. O mecanismo OLTP In-Memory foi projetado para uma concorrência de sessões extremamente alta para transações do tipo OLTP impulsionadas por uma camada intermediária altamente escalável. Para isso, ele usa estruturas de dados sem travas e controle de simultaneidade otimista de várias versões. O resultado é previsível, baixa latência de submissegundo e alta taxa de transferência com dimensionamento linear para transações de banco de dados. O ganho real de desempenho depende de muitos fatores, mas melhorias de desempenho de 5 a 20 vezes são comuns.
A tabela a seguir resume os padrões de carga de trabalho que podem se beneficiar mais usando In-Memory OLTP:
| Cenário de implementação | Cenário de implementação | Benefícios do OLTP In-Memory |
|---|---|---|
| Alta taxa de inserção de dados de várias conexões simultâneas. | Armazenamento somente para acréscimo. Não é possível acompanhar a carga de trabalho de inserção. |
Elimine a contenção. Reduza a gravação de logs. |
| Avalie o desempenho e a escalabilidade com inserções e atualizações periódicas em lotes. | Operações de leitura de alto desempenho, especialmente quando cada solicitação de servidor tem várias operações de leitura a serem executadas. Não é possível atender aos requisitos de expansão. |
Elimine a contenção quando novos dados chegarem. Recuperação de dados de latência mais baixa. Minimizar o tempo de execução do código. |
| Processamento intensivo de lógica de negócios no servidor de banco de dados. | Inserir, atualizar e excluir carga de trabalho. Computação intensiva dentro de procedimentos armazenados. Contenção de leitura e gravação. |
Eliminar conflito. Minimize o tempo de execução do código para latência reduzida e taxa de transferência aprimorada. |
| Baixa latência. | Exigir transações comerciais de baixa latência que as soluções típicas de banco de dados não podem alcançar. | Eliminar contenção. Minimizar o tempo de execução do código. Execução de código de baixa latência. Recuperação eficiente de dados. |
| Gerenciamento de estado de sessão. | Operações frequentes de inserção, atualização e consultas de ponto. Carga de alta escala de vários servidores Web sem estado. |
Eliminar contenção. Recuperação eficiente de dados. Redução ou remoção opcional de Entrada/Saída ao usar tabelas não duráveis |
Para obter mais informações sobre cenários em que In-Memory OLTP resultará nos maiores ganhos de desempenho, consulte In-Memory OLTP – Padrões comuns de carga de trabalho e considerações de migração.
In-Memory OLTP melhorará melhor o desempenho no OLTP com transações de execução curta.
Os padrões de programação que In-Memory OLTP melhorarão incluem cenários de simultaneidade, pesquisas de ponto, cargas de trabalho em que há muitas inserções e atualizações e lógica de negócios em procedimentos armazenados.
A integração com o SQL Server significa que você pode ter tabelas com otimização de memória e tabelas baseadas em disco no mesmo banco de dados e consultar em ambos os tipos de tabelas.
No SQL Server 2014 (12.x), há limitações em Transact-SQL área de superfície com suporte para In-Memory OLTP.
In-Memory OLTP obtém ganhos significativos de desempenho e escalabilidade usando:
Algoritmos otimizados para acessar dados residentes em memória.
Controle de simultaneidade otimista que elimina bloqueios lógicos.
Objetos livres de travamento que eliminam todos os bloqueios físicos e travas. Os threads que executam o trabalho transacional não usam bloqueios ou travas para controle de simultaneidade.
Procedimentos armazenados compilados nativamente, que têm um desempenho significativamente melhor do que os procedimentos armazenados interpretados, ao acessar uma tabela com otimização de memória.
Importante
Algumas alterações de sintaxe em tabelas e procedimentos armazenados serão necessárias para usar In-Memory OLTP. Para obter mais informações, consulte Migrar para In-Memory OLTP. Antes de tentar migrar uma tabela baseada em disco para uma tabela com otimização de memória, leia Determinando se uma tabela ou procedimento armazenado deve ser portado para In-Memory OLTP para ver quais tabelas e procedimentos armazenados se beneficiarão de In-Memory OLTP.
Nesta seção
Esta seção fornece informações sobre os seguintes conceitos:
| Tópico | Descrição |
|---|---|
| Requisitos para usar tabelas de Memory-Optimized | Discute requisitos e diretrizes de hardware e software para usar tabelas com otimização de memória. |
| Usando In-Memory OLTP em um ambiente de VM | Aborda o uso In-Memory OLTP em um ambiente virtualizado. |
| exemplos de código OLTPIn-Memory | Contém exemplos de código que mostram como criar e usar uma tabela com otimização de memória. |
| TabelasMemory-Optimized | Apresenta tabelas com otimização de memória. |
| variáveis de tabelaMemory-Optimized | 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. |
| Índices nas tabelas Memory-Optimized | Apresenta índices com otimização de memória. |
| Procedimentos armazenados compilados nativamente | Apresenta procedimentos armazenados compilados nativamente. |
| Gerenciando memória para In-Memory OLTP | Noções básicas e gerenciamento do uso de memória em seu sistema. |
| Criando e gerenciando o armazenamento para objetos Memory-Optimized | Discute dados e arquivos delta, que armazenam informações sobre transações em tabelas com otimização de memória. |
| Backup, restauração e recuperação de tabelas Memory-Optimized | Discute backup, restauração e recuperação para tabelas com otimização de memória. |
| SuporteTransact-SQL para o OLTP In-Memory | Discute suporte Transact-SQL para OLTP In-Memory. |
| Suporte de alta disponibilidade para bancos de dados OLTP In-Memory | Discute grupos de disponibilidade e agrupamento de failover em In-Memory OLTP. |
| Suporte do SQL Server para In-Memory OLTP | Lista a sintaxe e os recursos novos e atualizados que dão suporte a tabelas com otimização de memória. |
| Migrando para In-Memory OLTP | Discute como migrar tabelas baseadas em disco para tabelas com otimização de memória. |
Mais informações sobre In-Memory OLTP está disponível em: