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
Base de Dados SQL do Azure
Instância Gerida SQL do Azure
Base de Dados SQL no Microsoft Fabric
A família de recursos de processamento inteligente de consultas (IQP) inclui recursos com amplo impacto que melhoram o desempenho de cargas de trabalho existentes com o mínimo esforço de implementação a ser adotado. O gráfico a seguir detalha a família de recursos IQP e quando eles foram introduzidos pela primeira vez para o SQL Server. Todos os recursos do IQP estão disponíveis na Instância Gerenciada SQL do Azure e no Banco de Dados SQL do Azure. Alguns recursos dependem do nível de compatibilidade do banco de dados.
Assista a este vídeo para obter uma visão geral do processamento inteligente de consultas:
Para demonstrações e exemplos de código de recursos de processamento inteligente de consultas (IQP) no GitHub, visite https://aka.ms/IQPDemos.
Você pode tornar as cargas de trabalho automaticamente qualificadas para o processamento inteligente de consultas habilitando o nível de compatibilidade do banco de dados aplicável ao banco de dados. Você pode definir isso usando Transact-SQL. Por exemplo:
ALTER DATABASE [WideWorldImportersDW] SET COMPATIBILITY_LEVEL = 170;
A tabela a seguir detalha todos os recursos inteligentes de processamento de consultas, juntamente com qualquer requisito que eles tenham para o nível de compatibilidade do banco de dados. Para obter detalhes completos sobre todos os recursos do IQP, incluindo notas de versão e descrições mais detalhadas, consulte Recursos inteligentes de processamento de consultas em detalhes.
Recursos IQP para o Banco de Dados SQL do Azure e o SQL Server 2025 Preview
Funcionalidade IQP | Com suporte no Banco de Dados SQL do Azure | Com suporte no SQL Server 2025 (17.x) Preview | Descrição |
---|---|---|---|
Proteção otimizada contra o Dia das Bruxas | Não | Sim, começando com o SQL Server 2025 (17.x) Preview com nível de compatibilidade 170 | Reduz o tempdb consumo de espaço e melhora o desempenho da consulta ao não usar um spool para proteção contra o Dia das Bruxas. |
Otimização opcional do plano de parâmetros (OPPO) | Não | Sim, começando com o SQL Server 2025 (17.x) Preview com nível de compatibilidade 170 | Aproveita a infraestrutura de otimização de plano adaptativo (Multiplan) que foi introduzida com a melhoria Parameter Sensitive Plan Optimization (PSPO), que gera vários planos a partir de uma única declaração. O recurso pode escolher um plano mais ideal em tempo de execução com base em se um parâmetro é NULL OR NOT NULL , o que melhora o desempenho para consultas que, de outra forma, poderiam usar como padrão um desempenho abaixo do ideal para esses padrões de consulta. |
Feedback sobre a estimativa de cardinalidade (EC) para expressões | Não | Sim, a partir do SQL Server 2025 (17.x) Preview com nível de compatibilidade 160 | Estende o feedback do CE para melhorar as estimativas de cardinalidade para expressões repetidas em várias consultas, aprendendo com execuções anteriores e automaticamente aplicando as opções de modelos de CE apropriadas para execuções futuras dessas expressões. |
OPTIMIZED_SP_EXECUTESQL | Sim | Sim, começando com o SQL Server 2025 (17.x) Preview | Reduza efetivamente o impacto das tempestades de compilação. Uma tempestade de compilação refere-se a uma situação em que um grande número de consultas está sendo compilado simultaneamente, levando a problemas de desempenho e contenção de recursos. Habilite esse recurso para permitir que invocações de sp_executesql se comportem como objetos como procedimentos armazenados e gatilhos de uma perspetiva de compilação. |
Recursos IQP para o Banco de Dados SQL do Azure e o SQL Server 2022
Funcionalidade IQP | Com suporte no Banco de Dados SQL do Azure | Com suporte no SQL Server 2022 (16.x) e versões posteriores | Descrição |
---|---|---|---|
Junções adaptáveis (Modo de Processamento em Lote) | Sim, começando com o nível de compatibilidade de banco de dados 140 | Sim, a partir do SQL Server 2017 (14.x) com nível de compatibilidade de banco de dados 140 | As junções adaptáveis selecionam dinamicamente um tipo de junção durante o tempo de execução com base nas linhas de entrada reais. |
Contagem aproximada distinta | Sim | Sim, a partir do SQL Server 2019 (15.x) | Forneça cenários aproximados COUNT DISTINCT de big data com o benefício de alto desempenho e baixo consumo de memória. |
Percentil aproximado | Sim, começando com o nível de compatibilidade de banco de dados 110 | Sim, a partir do SQL Server 2022 (16.x) com nível de compatibilidade 110 | Calcule percentis rapidamente para um grande conjunto de dados, com limites de erro aceitáveis baseados em classificação, para facilitar a tomada de decisões rápidas, utilizando funções de agregação de percentis aproximados. |
Modo de lote no Rowstore | Sim, começando com o nível de compatibilidade de banco de dados 150 | Sim, a partir do SQL Server 2019 (15.x) com nível de compatibilidade 150 | Forneça o modo de lote para cargas de trabalho DW relacionais ligadas à CPU sem exigir índices columnstore. |
Feedback da estimativa de cardinalidade (CE) | Sim, começando com o nível de compatibilidade de banco de dados 160 | Sim, a partir do SQL Server 2022 (16.x) com nível de compatibilidade 160 | Ajusta automaticamente as estimativas de cardinalidade para consultas repetidas para otimizar cargas de trabalho onde suposições CE ineficientes causam baixo desempenho da consulta. O feedback do CE identificará e usará uma suposição de modelo que melhor se adapte a uma determinada consulta e distribuição de dados para melhorar a qualidade do plano de execução da consulta. |
Grau de paralelismo (DOP) feedback | Sim, começando com o nível de compatibilidade de banco de dados 160 | Sim, começando com o nível de compatibilidade de banco de dados 160 | Ajusta automaticamente o grau de paralelismo para consultas repetidas para otimizar cargas de trabalho onde paralelismo ineficiente pode causar problemas de desempenho. Requer que o Repositório de Consultas esteja ativado. |
Execução Intercalada | Sim, começando com o nível de compatibilidade de banco de dados 140 | Sim, a partir do SQL Server 2017 (14.x) com nível de compatibilidade de banco de dados 140 | Usa a cardinalidade real da função de valor de tabela de várias instruções encontrada na primeira compilação em vez de uma suposição fixa. |
Feedback de concessão de memória (Modo de lote) | Sim, começando com o nível de compatibilidade de banco de dados 140 | Sim, a partir do SQL Server 2017 (14.x) com nível de compatibilidade de banco de dados 140 | Se uma consulta em modo de lote tiver operações que se derramam para o disco, adicione mais memória para execuções consecutivas. Se uma consulta desperdiçar > 50% da memória alocada a ela, reduza o tamanho da concessão de memória para execuções consecutivas. |
Feedback de concessão de memória (Modo de linha) | Sim, começando com o nível de compatibilidade de banco de dados 150 | Sim, a partir do SQL Server 2019 (15.x) com nível de compatibilidade de banco de dados 150 | Se uma consulta em modo de linha tiver operações que transbordam para o disco, adicione mais memória para execuções subsequentes. Se uma consulta desperdiçar > 50% da memória alocada a ela, reduza o tamanho da concessão de memória para execuções consecutivas. |
Feedback de atribuição de memória (percentil) | Sim, ativado em todas as bases de dados | Sim, começando com o SQL Server 2022 (16.x)) com nível de compatibilidade de banco de dados 140 | Aborda as limitações existentes de feedback de concessão de memória de forma não intrusiva, incorporando a execução de consultas anteriores para refinar os comentários. |
Persistência de feedback do Memory Grant | Sim, ativado em todas as bases de dados | Sim, começando com o SQL Server 2022 (16.x)) com nível de compatibilidade de banco de dados 140 | Fornece nova funcionalidade para persistir o feedback de concessão de memória. Requer que o Repositório de Consultas esteja ativado para a base de dados e no modo READ_WRITE . |
Persistência do feedback do CE | Sim, começando com o nível de compatibilidade de banco de dados 160 | Sim, começando com o SQL Server 2022 (16.x)) com nível de compatibilidade de banco de dados 160 | Requer que o Repositório de Consultas esteja ativado para a base de dados e no modo READ_WRITE . |
Força de plano otimizada com o Query Store | Sim | Sim, começando com o SQL Server 2022 (16.x)). | Reduz a sobrecarga de compilação para repetir consultas forçadas. Para obter mais informações, consulte Forçar plano otimizado com o Repositório de Consultas. |
Escalar UDF Inlining | Sim, começando com o nível de compatibilidade de banco de dados 150 | Sim, a partir do SQL Server 2019 (15.x) com nível de compatibilidade de banco de dados 150 | UDFs escalares são transformadas em expressões relacionais equivalentes que são "embutidas" na consulta de chamada, muitas vezes resultando em ganhos de desempenho significativos. |
Otimização do Plano Sensível a Parâmetros | Sim, começando com o nível de compatibilidade de banco de dados 160 | Sim, a partir do SQL Server 2022 (16.x) com nível de compatibilidade de banco de dados 160 | A otimização do Plano Sensível a Parâmetros aborda o cenário em que um único plano armazenado em cache para uma consulta parametrizada não é ideal para todos os possíveis valores de parâmetros de entrada, por exemplo, distribuições de dados não uniformes. |
Compilação adiada da variável de tabela | Sim, começando com o nível de compatibilidade de banco de dados 150 | Sim, a partir do SQL Server 2019 (15.x) com nível de compatibilidade de banco de dados 150 | Usa a cardinalidade real da variável de tabela encontrada na primeira compilação em vez de uma suposição fixa. |
Recursos IQP para a Instância Gerenciada SQL do Azure
Funcionalidade IQP | Com suporte na Instância Gerenciada SQL do Azure | Descrição |
---|---|---|
Junções adaptáveis (Modo de Processamento em Lote) | Sim, começando com o nível de compatibilidade de banco de dados 140 | As junções adaptáveis selecionam dinamicamente um tipo de junção durante o tempo de execução com base nas linhas de entrada reais. |
Contagem aproximada distinta | Sim | Forneça cenários aproximados COUNT DISTINCT de big data com o benefício de alto desempenho e baixo consumo de memória. |
Percentil aproximado | Sim, começando com o nível de compatibilidade de banco de dados 110 | Calcule percentis rapidamente para um grande conjunto de dados, com limites de erro aceitáveis baseados em classificação, para facilitar a tomada de decisões rápidas, utilizando funções de agregação de percentis aproximados. |
Modo de lote no Rowstore | Sim, começando com o nível de compatibilidade de banco de dados 150 | Forneça o modo de lote para cargas de trabalho DW relacionais ligadas à CPU sem exigir índices columnstore. |
Feedback da estimativa de cardinalidade (CE) | Sim, começando com o nível de compatibilidade de banco de dados 160 | Ajusta automaticamente as estimativas de cardinalidade para consultas repetidas para otimizar cargas de trabalho onde suposições CE ineficientes causam baixo desempenho da consulta. O feedback do CE identificará e usará uma suposição de modelo que melhor se adapte a uma determinada consulta e distribuição de dados para melhorar a qualidade do plano de execução da consulta. |
Grau de paralelismo (DOP) feedback | Sim, começando com o nível de compatibilidade de banco de dados 160 na política de atualização Always-up-to-date. Não, para a política de atualização do SQL Server 2022. | Ajusta automaticamente o grau de paralelismo para consultas repetidas para otimizar cargas de trabalho onde paralelismo ineficiente pode causar problemas de desempenho. Requer que o Repositório de Consultas esteja ativado. |
Execução Intercalada | Sim, começando com o nível de compatibilidade de banco de dados 140 | Usa a cardinalidade real da função de valor de tabela de várias instruções encontrada na primeira compilação em vez de uma suposição fixa. |
Feedback de concessão de memória (Modo de lote) | Sim, começando com o nível de compatibilidade de banco de dados 140 | Se uma consulta em modo de lote tiver operações que se derramam para o disco, adicione mais memória para execuções consecutivas. Se uma consulta desperdiçar > 50% da memória alocada a ela, reduza o tamanho da concessão de memória para execuções consecutivas. |
Feedback de concessão de memória (Modo de linha) | Sim, começando com o nível de compatibilidade de banco de dados 150 | Se uma consulta em modo de linha tiver operações que transbordam para o disco, adicione mais memória para execuções subsequentes. Se uma consulta desperdiçar > 50% da memória alocada a ela, reduza o tamanho da concessão de memória para execuções consecutivas. |
Feedback de atribuição de memória (percentil) | Sim, começando com o nível de compatibilidade de banco de dados 160 | Aborda as limitações existentes de feedback de concessão de memória de forma não intrusiva, incorporando a execução de consultas anteriores para refinar os comentários. |
Concessão de memória, CE e persistência de feedback DOP | Sim, começando com o nível de compatibilidade de banco de dados 160 | Fornece nova funcionalidade para persistir o feedback de concessão de memória. O feedback CE e DOP é sempre persistente. Requer que o Repositório de Consultas esteja ativado para a base de dados e no modo READ_WRITE . |
Força de plano otimizada com o Query Store | Não | Reduz a sobrecarga de compilação para repetir consultas forçadas. Para obter mais informações, consulte Forçar plano otimizado com o Repositório de Consultas. |
Escalar UDF Inlining | Sim, começando com o nível de compatibilidade de banco de dados 150 | UDFs escalares são transformadas em expressões relacionais equivalentes que são "embutidas" na consulta de chamada, muitas vezes resultando em ganhos de desempenho significativos. |
Otimização do Plano Sensível a Parâmetros | Sim, começando com o nível de compatibilidade de banco de dados 160 | A Otimização do Plano de Sensibilidade a Parâmetros aborda o cenário em que um único plano armazenado em cache para uma consulta parametrizada não é ideal para todos os possíveis valores de parâmetros de entrada, por exemplo, distribuições de dados não uniformes. |
Compilação adiada da variável de tabela | Sim, começando com o nível de compatibilidade de banco de dados 150 | Usa a cardinalidade real da variável de tabela encontrada na primeira compilação em vez de uma suposição fixa. |
Recursos IQP para SQL Server 2019
Funcionalidade IQP | Com suporte no SQL Server 2019 (15.x) | Descrição |
---|---|---|
Junções adaptáveis (Modo de Processamento em Lote) | Sim, a partir do SQL Server 2017 (14.x) com nível de compatibilidade de banco de dados 140 | As junções adaptáveis selecionam dinamicamente um tipo de junção durante o tempo de execução com base nas linhas de entrada reais. |
Contagem aproximada distinta | Sim | Forneça cenários aproximados COUNT DISTINCT de big data com o benefício de alto desempenho e baixo consumo de memória. |
Modo de lote no Rowstore | Sim, começando com o nível de compatibilidade de banco de dados 150 | Forneça o modo de lote para cargas de trabalho DW relacionais ligadas à CPU sem exigir índices columnstore. |
Execução Intercalada | Sim, começando com o nível de compatibilidade de banco de dados 140 | Use a cardinalidade real da função de valor da tabela de várias instruções encontrada na primeira compilação em vez de uma suposição fixa. |
Feedback de concessão de memória (Modo de lote) | Sim, começando com o nível de compatibilidade de banco de dados 140 | Se uma consulta em modo de lote tiver operações que se derramam para o disco, adicione mais memória para execuções consecutivas. Se uma consulta desperdiçar > 50% da memória alocada a ela, reduza o tamanho da concessão de memória para execuções consecutivas. |
Feedback de concessão de memória (Modo de linha) | Sim, começando com o nível de compatibilidade de banco de dados 150 | Se uma consulta em modo de linha tiver operações que transbordam para o disco, adicione mais memória para execuções subsequentes. Se uma consulta desperdiçar > 50% da memória alocada a ela, reduza o tamanho da concessão de memória para execuções consecutivas. |
Escalar UDF Inlining | Sim, começando com o nível de compatibilidade de banco de dados 150 | UDFs escalares são transformadas em expressões relacionais equivalentes que são "embutidas" na consulta de chamada, muitas vezes resultando em ganhos de desempenho significativos. |
Compilação adiada da variável de tabela | Sim, começando com o nível de compatibilidade de banco de dados 150 | Use a cardinalidade real da variável de tabela encontrada na primeira compilação em vez de uma suposição fixa. |
Recursos IQP para SQL Server 2017
Funcionalidade IQP | Com suporte no SQL Server 2017 (14.x) | Descrição |
---|---|---|
Junções adaptáveis (Modo de Processamento em Lote) | Sim, a partir do SQL Server 2017 (14.x) com nível de compatibilidade de banco de dados 140 | As junções adaptáveis selecionam dinamicamente um tipo de junção durante o tempo de execução com base nas linhas de entrada reais. |
Contagem aproximada distinta | Sim | Forneça cenários aproximados COUNT DISTINCT de big data com o benefício de alto desempenho e baixo consumo de memória. |
Execução Intercalada | Sim, começando com o nível de compatibilidade de banco de dados 140 | Use a cardinalidade real da função de valor da tabela de várias instruções encontrada na primeira compilação em vez de uma suposição fixa. |
Feedback de concessão de memória (Modo de lote) | Sim, começando com o nível de compatibilidade de banco de dados 140 | Se uma consulta em modo de lote tiver operações que se derramam para o disco, adicione mais memória para execuções consecutivas. Se uma consulta desperdiçar > 50% da memória alocada a ela, reduza o tamanho da concessão de memória para execuções consecutivas. |
Requisito do Repositório de Consultas
Vários do conjunto de recursos inteligentes de processamento de consultas exigem que o Repositório de Consultas esteja habilitado para beneficiar o banco de dados do usuário. Para habilitar o Repositório de Consultas, consulte Habilitar o Repositório de Consultas.
Funcionalidade IQP | Requer que o Repositório de Consultas esteja habilitado e READ_WRITE |
---|---|
Junções adaptáveis (Modo de Processamento em Lote) | Não |
Contagem aproximada distinta | Não |
Percentil aproximado | Não |
Modo de lote no Rowstore | Não |
Feedback da estimativa de cardinalidade (CE) | Sim |
Grau de paralelismo (DOP) feedback | Sim |
Execução Intercalada | Não |
Feedback de concessão de memória (Modo de lote) | Não |
Feedback de concessão de memória (Modo de linha) | Não |
Feedback de concessão de memória (modo Percentil e Persistência) | Sim |
Força de plano otimizada com o Query Store | Sim |
Escalar UDF Inlining | Não |
Otimização do Plano Sensível a Parâmetros | Não, mas recomendado |
Compilação adiada da variável de tabela | Não |
Conteúdo relacionado
- Recursos inteligentes de processamento de consultas em detalhes
- Junções (SQL Server)
- Modos de execução
- Guia de arquitetura de processamento de consultas
- Referência aos operadores lógicos e físicos do showplan
- O que há de novo no SQL Server 2017
- O que há de novo no SQL Server 2019
- O que há de novo no SQL Server 2022
- Feedback de concessão de memória
- Demonstrando o processamento inteligente de consultas
- Dobragem constante e avaliação da expressão
- Demonstrações inteligentes de processamento de consultas no GitHub
- Performance Center para Motor de Base de Dados do SQL Server e Base de Dados SQL do Azure
- Monitorar o desempenho usando o Repositório de Consultas
- Práticas recomendadas para monitorar cargas de trabalho com o Query Store