Compartilhar via


Repositório de Consultas para secundários legíveis

SQL Server 2022 (16.x)

O recurso Repositório de Consultas para réplicas secundárias legíveis permite a mesma funcionalidade do Repositório de Consultas em cargas de trabalho de réplicas secundárias, que está disponível para réplicas primárias. Quando o Repositório de Consultas para réplicas secundárias está habilitado, as réplicas enviam as informações de execução da consulta que normalmente seriam armazenadas no Repositório de Consultas de volta para a réplica primária. Em seguida, a réplica primária mantém os dados em disco dentro de seu próprio Repositório de Consultas. Em essência, há um Repositório de Consultas compartilhado entre as réplicas primárias e todas as secundárias. O Repositório de Consultas existe na réplica primária e armazena dados para todas as réplicas juntas. Atualmente, o Repositório de Consultas para réplicas secundárias está disponível com instâncias do SQL Server 2022 (16.x) configuradas em grupos de disponibilidade.

Observações

O Repositório de Consultas para secundários legíveis é um recurso de visualização . Ele não se destina a implantações de produção. Para obter mais informações, consulte as notas sobre a versão do SQL Server 2022.

Você deve habilitar o Sinalizador de Rastreamento 12606 antes de habilitar o Repositório de Consultas para secundários legíveis. Para habilitar os sinalizadores de rastreamento:

  1. No Windows, inicie SQL Server Configuration Manager.

  2. Na lista de Serviços do SQL Server, clique com o botão direito do mouse no serviço de instância do SQL Server para sua instância do SQL Server 2022 (16.x). Selecione Propriedades.

  3. Selecione a guia Parâmetros de Inicialização. No campo Especificar um parâmetro de inicialização:, adicione os valores: -T12606 e selecione Adicionar.

  4. O serviço de instância do SQL Server deve ser reiniciado antes que as alterações entrem em vigor.

Observação

A partir da versão SQL Server 2025 (17.x) Preview, o Query Store para secundários legíveis não está mais em versão prévia e está habilitado por padrão. O sinalizador de rastreamento 12606 não é mais necessário para usar o Repositório de Consultas para o recurso secundário legível. Habilitar o Flag de Rastreamento 12606 no SQL Server 2025 (17.x) Prévia desabilita o Repositório de Consultas para o recurso de secundários legíveis.

Habilitar o Repositório de Consultas para secundários legíveis

Antes de usar o Query Store para os secundários legíveis em uma instância do SQL Server, você precisa ter um grupo de disponibilidade Always On. Em seguida, habilite o Repositório de Consultas para secundários legíveis usando opções ALTER DATABASE SET.

Se o Query Store ainda não estiver habilitado e estiver no modo READ_WRITE na réplica primária, é necessário habilitá-lo antes de continuar. Execute o seguinte para cada banco de dados desejado na réplica primária:

ALTER DATABASE [Database_Name] SET QUERY_STORE = ON;
GO
ALTER DATABASE [Database_Name] SET QUERY_STORE
( OPERATION_MODE = READ_WRITE );

Para habilitar o Repositório de Consultas em todos os secundários legíveis, conecte-se à réplica primária e execute o seguinte para cada banco de dados desejado. Atualmente, quando o Repositório de Consultas para secundários legíveis está habilitado, ele é habilitado para todas as réplicas secundárias.

ALTER DATABASE [Database_Name]
FOR SECONDARY SET QUERY_STORE = ON (OPERATION_MODE = READ_WRITE );
GO

Para desabilitar o Repositório de Consultas em todas as réplicas secundárias, conecte-se à réplica primária e execute o seguinte para cada banco de dados desejado:

ALTER DATABASE [Database_Name]
FOR SECONDARY SET QUERY_STORE = OFF;
GO

Você pode validar se o Repositório de Consultas está habilitado em uma réplica secundária conectando-se ao banco de dados na réplica secundária e executando o seguinte:

SELECT desired_state,
       desired_state_desc,
       actual_state,
       actual_state_desc,
       readonly_reason
FROM sys.database_query_store_options;
GO

Os resultados de exemplo a seguir da consulta sys.database_query_store_options indicam que o Repositório de Consultas está em um estado READ_CAPTURE_SECONDARY para o secundário. O readonly_reason de 8 indica que a consulta foi executada em uma réplica secundária. Esses resultados indicam que o Repositório de Consultas foi habilitado com êxito na réplica secundária.

estado_desejado descrição_do_estado_desejado estado_atual descrição_do_estado_atual motivo_apenas_de_leitura
4 LEITURA_CAPTURA_SECUNDÁRIO 4 LER_CAPTURAR_SECUNDÁRIO oito

Depois de habilitado, você pode usar sys.query_store_replicas para verificar a integridade do Query Store na réplica secundária.

Para desabilitar o Repositório de Consultas para réplicas secundárias legíveis, conecte-se ao banco de dados na réplica primária e execute o seguinte código:

ALTER DATABASE CURRENT
FOR SECONDARY SET QUERY_STORE = OFF;
GO

Conjuntos de réplicas

Atualmente, quando o Repositório de Consultas para réplicas secundárias legíveis está habilitado, ele é habilitado para todas as réplicas secundárias.

Um conjunto de réplicas é definido como sendo todas as réplicas não nomeadas que compartilham uma função (primária, secundária, primária geográfica, secundária geográfica) ou como sendo uma réplica nomeada individual. Os dados armazenados sobre consultas podem ser analisados como cargas de trabalho com base em conjuntos de réplicas. O Query Store para réplicas fornece a capacidade de monitorar e ajustar o desempenho de quaisquer cargas de trabalho exclusivas e somente leitura que possam estar em execução em réplicas secundárias.

Considerações de desempenho para o Repositório de Consultas para secundários legíveis

O canal usado por réplicas secundárias para enviar informações de consulta de volta para a réplica primária é o mesmo canal usado para manter as réplicas secundárias atualizadas. Os dados são armazenados nas mesmas tabelas na réplica primária que o Repositório de Consultas usa para consultas executadas na réplica primária, o que faz com que o tamanho do Repositório de Consultas cresça.

Portanto, quando um sistema está sob carga significativa, você pode notar alguma lentidão devido ao canal estar sobrecarregado. Além disso, os mesmos problemas de captura de consulta ad hoc existentes para o Repositório de Consultas hoje continuarão para cargas de trabalho executadas em réplicas secundárias. Saiba mais sobre como manter os dados mais relevantes no Repositório de Consultas.