Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Com apenas algumas exceções, você pode acessar tabelas com otimização de memória usando qualquer consulta Transact-SQL ou operação DML (SELECT, INSERT, UPDATE ou DELETE), lotes ad hoc e módulos SQL, como procedimentos armazenados, funções de valor de tabela, gatilhos e exibições.
O Transact-SQL interpretado refere-se a Transact-SQL lotes ou procedimentos armazenados que não sejam um procedimento armazenado compilado nativamente. Interpretado Transact-SQL acesso a tabelas com otimização de memória é chamado de acesso de interoperabilidade.
Tabelas com otimização de memória também podem ser acessadas usando um procedimento armazenado compilado nativamente. Procedimentos armazenados compilados nativamente são recomendados para operações OLTP críticas ao desempenho.
O acesso Transact-SQL interpretado é recomendado para estes cenários:
Consultas ad hoc e tarefas administrativas.
Consultas de relatório, que normalmente usam constructos não disponíveis em procedimentos armazenados compilados nativamente (como funções de janela).
Para migrar partes críticas de desempenho do aplicativo para tabelas com otimização de memória, com alterações mínimas no código do aplicativo (ou não). Pode ser que você veja melhorias de desempenho ao migrar tabelas. Se você migrar procedimentos armazenados para procedimentos armazenados compilados nativamente, poderá ver mais melhorias no desempenho.
Quando uma instrução Transact-SQL não está disponível para procedimentos armazenados compilados nativamente.
Não há suporte para as construções de Transact-SQL a seguir em procedimentos armazenados Transact-SQL interpretados, que acessam dados em tabelas otimizadas para memória.
| Área | Sem suporte |
|---|---|
| Acesso a tabelas | TRUNCAR TABELA MERGE (tabela com otimização de memória como destino) Cursores dinâmicos e de conjunto de chaves (eles se degradam automaticamente para estáticos). Acesso de módulos CLR usando a conexão de contexto. Referenciando uma tabela com otimização de memória a partir de uma visão indexada. |
| Banco de dados cruzado | Consultas entre bancos de dados Transações entre bancos de dados Servidores vinculados |
Sugestões de Tabelas
Para obter mais informações sobre dicas de tabela, consulte a documentação específica. Sugestões de Tabela (Transact-SQL). O isolamento SNAPSHOT foi adicionado para dar suporte a In-Memory OLTP.
Não há suporte para as dicas de tabela a seguir ao acessar uma tabela com otimização de memória usando Transact-SQL interpretado.
| HOLDLOCK | IGNORAR_RESTRIÇÕES | IGNORE_TRIGGERS | NOWAIT |
| PAGLOCK | Nivel de isolamento READCOMMITTED | Bloqueio de Leitura Confirmada (READCOMMITTEDLOCK) | READPAST |
| READUNCOMMITTED | ROWLOCK | SPATIAL_WINDOW_MAX_CELLS = inteiro | TABLOCK |
| TABLOCKXX | Bloqueio de Atualização | XLOCK |
Ao acessar uma tabela com otimização de memória de uma transação explícita ou implícita usando Transact-SQL interpretada, você deve incluir uma dica de tabela de nível de isolamento, como SNAPSHOT, REPEATABLEREAD ou SERIALIZABLE, ou pode usar MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT. Para obter mais informações, consulte Diretrizes para níveis de isolamento de transações com tabelas Memory-Optimized e opções ALTER DATABASE SET (Transact-SQL).
Observação
Uma sugestão de nível de isolamento da tabela não é necessária para tabelas com otimização de memória acessadas por consultas que operam no modo de auto-confirmação.
Consulte Também
SuporteTransact-SQL para o OLTP In-Memory
Migrando para In-Memory OLTP