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
Azure SQL Database
Azure SQL Managed Instance
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.
Funcionalidades do IQP para Azure SQL Database e SQL Server 2025
| Funcionalidade IQP | Com suporte no Banco de Dados SQL do Azure | Suportado no SQL Server 2025 (17.x) | Description |
|---|---|---|---|
| Otimização opcional do plano de parâmetros (OPPO) | No | Sim, a partir do SQL Server 2025 (17.x) 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 | No | Sim, a partir do SQL Server 2025 (17.x) 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 | Yes | Sim, a partir do SQL Server 2025 (17.x) | Reduza efetivamente o impacto das tempestades de compilação. Uma tempestade de compilação é 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 | Description |
|---|---|---|---|
| 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 | Yes | 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 | Yes | 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 | Description |
|---|---|---|
| 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 | Yes | 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 Instância Gerenciada SQL do Azure com a política de atualizaçãoSQL Server 2025 ou 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) | Description |
|---|---|---|
| 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 | Yes | 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) | Description |
|---|---|---|
| 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 | Yes | 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) | No |
| Contagem aproximada distinta | No |
| Percentil aproximado | No |
| Modo de lote no Rowstore | No |
| Feedback da estimativa de cardinalidade (CE) | Yes |
| Grau de paralelismo (DOP) feedback | Yes |
| Execução Intercalada | No |
| Feedback de concessão de memória (Modo de lote) | No |
| Feedback de concessão de memória (Modo de linha) | No |
| Feedback de concessão de memória (modo Percentil e Persistência) | Yes |
| Força de plano otimizada com o Query Store | Yes |
| Escalar UDF Inlining | No |
| Otimização do Plano Sensível a Parâmetros | Não, mas recomendado |
| Compilação adiada da variável de tabela | No |
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