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.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada SQL do Azure
Este tópico discute funcionalidades do SQL Server que não são suportadas para uso com objetos otimizados para memória. Além disso, a secção final lista funcionalidades que não eram suportadas para In-Memory OLTP, mas que mais tarde passaram a ser suportadas.
Funcionalidades do SQL Server Não Suportadas para In-Memory OLTP
As seguintes funcionalidades do SQL Server não são suportadas numa base de dados que tenha objetos otimizados para memória (incluindo grupos de ficheiros de dados otimizados para memória).
| Funcionalidade Não Suportada | Descrição do recurso |
|---|---|
| Compressão de dados para tabelas otimizadas para memória. | Pode usar a funcionalidade de compressão de dados para ajudar a comprimir os dados dentro de uma base de dados e para ajudar a reduzir o tamanho da base de dados. Para obter mais informações, consulte Compressão de Dados. |
| Particionamento de tabelas otimizadas para memória e índices HASH, bem como de índices não agrupados. | Os dados das tabelas e índices particionados são divididos em unidades que podem ser distribuídas por mais do que um grupo de ficheiros numa base de dados. Para obter mais informações, consulte Tabelas Particionadas e Índices. |
| Replication | Configurações de replicação, com exceção da replicação transacional para tabelas otimizadas para memória nos assinantes, são incompatíveis com tabelas ou visões que referenciam tabelas otimizadas para memória. Se existir um grupo de ficheiros otimizado para memória, a replicação usando sync_mode='snapshot da base de dados' não é suportada. Para mais informações, consulte Replicação para Memory-Optimized Assinantes de Tabelas. |
| Espelhamento | O espelhamento de bases de dados não é suportado para bases de dados com um grupo de ficheiros MEMORY_OPTIMIZED_DATA. Para mais informações sobre espelhamento, veja Espelhamento de Bases de Dados (SQL Server). |
| Log de reconstrução | Reconstruir o registo, seja através do attachment ou do ALTER DATABASE, não é suportado para bases de dados com um grupo de ficheiros MEMORY_OPTIMIZED_DATA. |
| Servidor vinculado | Não é possível aceder a servidores ligados em simultâneo numa consulta ou transação com tabelas otimizadas para memória. Para obter mais informações, consulte Servidores vinculados (Mecanismo de Banco de Dados). |
| Exploração em massa | Independentemente do modelo de recuperação da base de dados, todas as operações em tabelas duráveis otimizadas para memória são sempre totalmente registadas. |
| Registo mínimo | O registo mínimo não é suportado para tabelas otimizadas para memória. Para mais informações sobre registos mínimos, consulte O Registo de Transações (SQL Server) e Pré-requisitos para Registo Mínimo em Importação em Massa. |
| Acompanhamento de alterações | O acompanhamento de alterações não é suportado para tabelas otimizadas para memória. |
| Gatilhos DDL | Os gatilhos ao nível da base de dados e os gatilhos DDL ao nível do servidor não são suportados com tabelas OLTP In-Memory nem com módulos compilados nativamente. |
| Captura de Alterações de Dados (CDC) | SQL Server 2017 CU15 e superiores suportam a ativação do CDC numa base de dados que possui tabelas otimizadas para memória. Isto só se aplica à base de dados e a quaisquer tabelas no disco da base de dados. Em versões anteriores do SQL Server, o CDC não pode ser usado com uma base de dados que tenha tabelas otimizadas para memória, porque internamente o CDC utiliza um gatilho DDL para o DROP TABLE. |
| Modo de fibra | O modo fibra não é suportado com tabelas otimizadas para memória: Se o modo fibra estiver ativo, não pode criar bases de dados com grupos de ficheiros otimizados para memória, nem pode adicionar grupos de ficheiros otimizados para memória a bases de dados existentes. Pode ativar o modo fibra se existirem bases de dados com grupos de ficheiros otimizados para memória. No entanto, ativar o modo fibra requer um reinício do servidor. Nessa situação, bases de dados com grupos de ficheiros otimizados para memória não conseguiriam recuperar. Depois verias uma mensagem de erro a sugerir que desatives o modo fibra para usar bases de dados com grupos de ficheiros otimizados para memória. Se o modo fibra estiver ativo, a anexação e restauração de uma base de dados com um grupo de ficheiros otimizado para memória falharão. As bases de dados seriam marcadas como suspeitas. Para obter mais informações, consulte Opção de configuração do servidor de pool leve. |
| Limitação do Corretor de Serviços | Não é possível aceder a uma fila a partir de um procedimento armazenado compilado nativamente. Não é possível aceder a uma fila numa base de dados remota numa transação que acede a tabelas otimizadas para memória. |
| Replicação em assinantes | A replicação transacional para tabelas otimizadas para memória em assinantes é suportada, mas com algumas restrições. Para mais informações, consulte Replicação para Assinantes de Tabelas Otimizadas para Memória |
Consultas e transações entre bases de dados
Com algumas exceções, transações entre bases de dados não são suportadas. A tabela seguinte descreve quais os casos suportados e as respetivas restrições. (Ver também, Consultas entre Bases de Dados.)
| Databases | Permitido | Description |
|---|---|---|
| Bases de dados de utilizadores, modelo e msdb. | Não | Na maioria dos casos, consultas e transações entre bases de dados não são suportadas. Uma consulta não pode aceder a outras bases de dados se utilizar uma tabela otimizada para memória ou um procedimento armazenado compilado nativamente. Esta restrição aplica-se a transações e consultas. As exceções são as bases de dados do sistema tempdb e master. Aqui, a base de dados principal está disponível para acesso apenas de leitura. |
| Base de dados de recursos , tempdb | Yes | Numa transação que envolve objetos OLTP em memória, os sistemas de bases de dados Resource e tempdb podem ser utilizados sem restrições adicionais. |
Cenários não suportados
Aceder a tabelas otimizadas para memória usando a ligação contextual a partir dos procedimentos armazenados dentro do CLR.
Cursores dinâmicos e conjuntos de chaves nas consultas que acedem a tabelas otimizadas para memória. Estes cursores são degradados para estático e somente de leitura.
O MERGE INTOtarget, onde target é uma tabela otimizada para memória, não é suportado.
- MERGE USINGsource é suportado para tabelas otimizadas para memória.
O tipo de dado ROWVERSION (TIMESTAMP) não é suportado. Para obter mais informações, consulte FROM (Transact-SQL).
O fecho automático não é suportado em bases de dados que tenham um grupo de ficheiros MEMORY_OPTIMIZED_DATA
As DDLs transacionais, como CREATE/ALTER/DROP de objetos OLTP In-Memory, não são suportadas dentro de transações de utilizador.
Notificação de evento.
Gestão baseada em políticas (PBM).
- Os modos de prevenção e apenas registo do PBM não são suportados. A existência dessas políticas no servidor pode impedir que In-Memory DDL OLTP seja executado com sucesso. Os modos a pedido e agendado são suportados.
A contenção de bases de dados (Bases de Dados Contenidas) não é suportada com In-Memory OLTP.
- É suportada a autenticação por base de dados contida. No entanto, todos os objetos OLTP In-Memory são marcados como quebrando a contenção na vista de administração dinâmica (DMV) dm_db_uncontained_entities.
Suportes adicionados recentemente
Por vezes, uma versão mais recente do SQL Server adiciona suporte para uma funcionalidade que anteriormente não era suportada. Esta secção lista funcionalidades que antes não eram suportadas para In-Memory OLTP, mas que mais tarde passaram a ser suportadas para In-Memory OLTP.
Na tabela seguinte, valores da versão como (15.x) referem-se ao valor que é devolvido pela instrução SELECT @@Version; Transact-SQL.
| Nome do recurso | Versão do SQL Server | Comments |
|---|---|---|
| Instantâneos do banco de dados | 2019 (15.x) | Os instantâneos de base de dados são agora suportados para bases de dados que têm um grupo de ficheiros MEMORY_OPTIMIZED_DATA. |