Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do
AzureInstância
Gerenciada de SQL do AzureBanco de dados SQL no Microsoft Fabric
A família de recursos IQP (processamento de consulta inteligente) inclui recursos de amplo impacto que melhoram o desempenho de cargas de trabalho existentes com esforço mínimo de implementação na adoção. 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 IQP estão disponíveis na Instância Gerenciada de 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 de consulta inteligente:
Para demonstrações e código de exemplo de recursos de processamento de consulta inteligente (IQP) no GitHub, visite https://aka.ms/IQPDemos.
Você pode deixar as cargas de trabalho automaticamente qualificadas para o processamento de consulta inteligente habilitando o nível de compatibilidade do banco de dados aplicável. Você pode definir isso usando o Transact-SQL. Por exemplo:
ALTER DATABASE [WideWorldImportersDW]
SET COMPATIBILITY_LEVEL = 170;
A tabela a seguir detalha todos os recursos de processamento de consulta inteligente, juntamente com todos os requisitos 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 os recursos de processamento de consulta inteligente em detalhes.
Recursos do IQP para o Banco de Dados SQL do Azure e o SQL Server 2025
| Recurso IQP | Com suporte no Banco de Dados SQL do Azure | Com suporte no SQL Server 2025 (17.x) | Description |
|---|---|---|---|
| Otimização de Plano de Parâmetro Opcional (OPPO) | No | Sim, começando com o SQL Server 2025 (17.x) com o nível de compatibilidade 170 | Aproveita a infraestrutura de otimização de plano adaptável (Multiplan) que foi introduzida com a melhoria da PSPO (Otimização de Plano Sensível a Parâmetros), que gera vários planos de uma única instrução. O recurso pode escolher um plano mais adequado durante o tempo de execução com base em se um parâmetro é NULL OR NOT NULL ou não, o que melhora o desempenho de consultas que, de outra forma, poderiam adotar desempenho abaixo do ideal para esses padrões de consulta. |
| Comentários sobre estimativa de cardinalidade (CE) para expressões | No | Sim, começando com o SQL Server 2025 (17.x) com o nível de compatibilidade 160 | Estende o feedback de CE para melhorar as estimativas de cardinalidade de expressões repetitivas em consultas, aprendendo com execuções anteriores e escolhendo automaticamente opções de modelo CE apropriadas para execuções futuras dessas expressões. |
| OPTIMIZED_SP_EXECUTESQL | Yes | Sim, começando com o SQL Server 2025 (17.x) | Reduza o impacto das tempestades de compilação de forma eficaz. 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 sp_executesql se comportem como objetos, como procedimentos armazenados e gatilhos de uma perspectiva de compilação. |
Recursos do IQP para o Banco de Dados SQL do Azure e o SQL Server 2022
| Recurso 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 Lote) | Sim, com compatibilidade do banco de dados de nível 140 ou superior | Sim, no SQL Server 2017 (14.x ou versões posteriores) com compatibilidade do banco de dados de nível 140 | As junções adaptáveis selecionam automaticamente um tipo de junção durante o runtime com base nas linhas de entrada reais. |
| Contagem aproximada distinta | Yes | Sim, no SQL Server 2019 (versão 15.x ou posteriores) | Forneça estimativas aproximadas COUNT DISTINCT para cenários de Big Data com o benefício de alto desempenho e baixo consumo de memória. |
| Percentil aproximado | Sim, com compatibilidade do banco de dados de nível 110 ou superior | Sim, no SQL Server 2022 (16.x ou versões posteriores) com nível de compatibilidade 110 | Calcule rapidamente percentis para um conjunto de dados grande com limites de erro aceitáveis baseados em classificação para ajudar a tomar decisões rápidas usando funções de agregação de percentil aproximadas. |
| Modo de Lote no Rowstore | Sim, com compatibilidade do banco de dados de nível 150 ou superior | Sim, no SQL Server 2019 (15.x ou versões posteriores) com nível de compatibilidade 150 | Forneça o modo de lote para cargas de trabalho de DW relacionais vinculados à CPU sem exigir índices columnstore. |
| Feedback da CE (estimativa de cardinalidade) | Sim, com compatibilidade do banco de dados de nível 160 ou superior | Sim, no SQL Server 2022 (16.x ou versões posteriores) com nível de compatibilidade 160 | Ajusta automaticamente as estimativas de cardinalidade para consultas repetidas de modo a otimizar cargas de trabalho em que pressuposições de CE ineficientes causam baixo desempenho da consulta. Os comentários da CE identificarão e usarão uma suposição de modelo mais adequada a uma determinada distribuição de consulta e de dados para aprimorar a qualidade do plano de execução de consulta. |
| Comentários de DOP (grau de paralelismo) | Sim, com compatibilidade do banco de dados de nível 160 ou superior | Sim, com compatibilidade do banco de dados de nível 160 ou superior | Ajusta automaticamente o grau de paralelismo de consultas repetidas de modo a otimizar para cargas de trabalho em que o paralelismo ineficiente pode causar problemas de desempenho. Requer que o Repositório de Consultas esteja habilitado. |
| Execução intercalada | Sim, com compatibilidade do banco de dados de nível 140 ou superior | Sim, no SQL Server 2017 (14.x ou versões posteriores) com compatibilidade do banco de dados de nível 140 | Usa a cardinalidade real da função com valor de tabela de várias instruções encontrada na primeira compilação em vez de uma estimativa fixa. |
| Feedback de concessão de memória (Modo de Lote) | Sim, com compatibilidade do banco de dados de nível 140 ou superior | Sim, no SQL Server 2017 (14.x ou versões posteriores) com compatibilidade do banco de dados de nível 140 | Se uma consulta de modo de lote tiver operações que são despejadas no disco, aumente a memória para execuções consecutivas. Se uma consulta gastar > 50% da memória alocada para 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, com compatibilidade do banco de dados de nível 150 ou superior | Sim, no SQL Server 2019 (15.x ou versões posteriores) com compatibilidade do banco de dados de nível 150 | Se uma consulta de modo de linha tiver operações que são despejadas no disco, aumente a memória para execuções consecutivas. Se uma consulta gastar > 50% da memória alocada para ela, reduza o tamanho da concessão de memória para execuções consecutivas. |
| Feedback de concessão de memória (Percentil) | Sim, habilitado em todos os bancos de dados | Sim, no SQL Server 2022 (16.x ou versões posteriores) com compatibilidade do banco de dados de nível 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 o feedback. |
| Persistência de feedback de concessão de memória | Sim, habilitado em todos os bancos de dados | Sim, no SQL Server 2022 (16.x ou versões posteriores) com compatibilidade do banco de dados de nível 140 | Fornece uma nova funcionalidade para persistir o feedback de concessão de memória. Requer que o Repositório de Consultas esteja habilitado e no modo READ_WRITE. |
| Persistência de feedback da CE | Sim, com compatibilidade do banco de dados de nível 160 ou superior | Sim, no SQL Server 2022 (16.x e versões posteriores) com nível de compatibilidade do banco de dados 160 | Requer que o Repositório de Consultas esteja habilitado e no modo READ_WRITE. |
| Imposição de plano otimizado com Repositório de Consultas | Yes | Sim, no SQL Server 2022 (16.x ou versões posteriores). | Reduz a sobrecarga de compilação para repetir consultas forçadas. Para obter mais informações, confira Imposição de plano otimizado com Repositório de Consultas. |
| Inlining de UDF escalar | Sim, com compatibilidade do banco de dados de nível 150 ou superior | Sim, no SQL Server 2019 (15.x ou versões posteriores) com compatibilidade do banco de dados de nível 150 | Os UDFs escalares são transformados em expressões relacionais equivalentes que são "embutidas" na consulta que fez a chamada, geralmente resultando em ganhos significativos de desempenho. |
| Otimização do plano sensível de parâmetro | Sim, com compatibilidade do banco de dados de nível 160 ou superior | Sim, no SQL Server 2022 (16.x e versões posteriores) com nível de compatibilidade do 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 valores de parâmetro de entrada possíveis, por exemplo, distribuições de dados não uniformes. |
| Compilação adiada de variável da tabela | Sim, com compatibilidade do banco de dados de nível 150 ou superior | Sim, no SQL Server 2019 (15.x ou versões posteriores) com compatibilidade do banco de dados de nível 150 | Usa a cardinalidade real da variável de tabela encontrada na primeira compilação em vez de uma estimativa fixa. |
Recursos IQP para a Instância Gerenciada de SQL do Azure
| Recurso IQP | Com suporte na Instância Gerenciada de SQL do Azure | Description |
|---|---|---|
| Junções adaptáveis (Modo de Lote) | Sim, com compatibilidade do banco de dados de nível 140 ou superior | As junções adaptáveis selecionam automaticamente um tipo de junção durante o runtime com base nas linhas de entrada reais. |
| Contagem aproximada distinta | Yes | Forneça estimativas aproximadas COUNT DISTINCT para cenários de Big Data com o benefício de alto desempenho e baixo consumo de memória. |
| Percentil aproximado | Sim, com compatibilidade do banco de dados de nível 110 ou superior | Calcule rapidamente percentis para um conjunto de dados grande com limites de erro aceitáveis baseados em classificação para ajudar a tomar decisões rápidas usando funções de agregação de percentil aproximadas. |
| Modo de Lote no Rowstore | Sim, com compatibilidade do banco de dados de nível 150 ou superior | Forneça o modo de lote para cargas de trabalho de DW relacionais vinculados à CPU sem exigir índices columnstore. |
| Feedback da CE (estimativa de cardinalidade) | Sim, com compatibilidade do banco de dados de nível 160 ou superior | Ajusta automaticamente as estimativas de cardinalidade para consultas repetidas de modo a otimizar cargas de trabalho em que pressuposições de CE ineficientes causam baixo desempenho da consulta. Os comentários da CE identificarão e usarão uma suposição de modelo mais adequada a uma determinada distribuição de consulta e de dados para aprimorar a qualidade do plano de execução de consulta. |
| Comentários de DOP (grau de paralelismo) | Sim, começando com o nível de compatibilidade do banco de dados 160 na Instância Gerenciada de SQL do Azure com a política de atualizaçãodo SQL 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 de consultas repetidas de modo a otimizar para cargas de trabalho em que o paralelismo ineficiente pode causar problemas de desempenho. Requer que o Repositório de Consultas esteja habilitado. |
| Execução intercalada | Sim, com compatibilidade do banco de dados de nível 140 ou superior | Usa a cardinalidade real da função com valor de tabela de várias instruções encontrada na primeira compilação em vez de uma estimativa fixa. |
| Feedback de concessão de memória (Modo de Lote) | Sim, com compatibilidade do banco de dados de nível 140 ou superior | Se uma consulta de modo de lote tiver operações que são despejadas no disco, aumente a memória para execuções consecutivas. Se uma consulta gastar > 50% da memória alocada para 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, com compatibilidade do banco de dados de nível 150 ou superior | Se uma consulta de modo de linha tiver operações que são despejadas no disco, aumente a memória para execuções consecutivas. Se uma consulta gastar > 50% da memória alocada para ela, reduza o tamanho da concessão de memória para execuções consecutivas. |
| Feedback de concessão de memória (Percentil) | Sim, com compatibilidade do banco de dados de nível 160 ou superior | 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 o feedback. |
| Persistência de feedback de concessão de memória, CE e DOP | Sim, com compatibilidade do banco de dados de nível 160 ou superior | Fornece uma nova funcionalidade para persistir o feedback de concessão de memória. O feedback de CE e DOP é sempre persistente. Requer que o Repositório de Consultas esteja habilitado e no modo READ_WRITE. |
| Imposição de plano otimizado com Repositório de Consultas | Nenhum | Reduz a sobrecarga de compilação para repetir consultas forçadas. Para obter mais informações, confira Imposição de plano otimizado com Repositório de Consultas. |
| Inlining de UDF escalar | Sim, com compatibilidade do banco de dados de nível 150 ou superior | Os UDFs escalares são transformados em expressões relacionais equivalentes que são "embutidas" na consulta que fez a chamada, geralmente resultando em ganhos significativos de desempenho. |
| Otimização do plano sensível de parâmetro | Sim, com compatibilidade do banco de dados de nível 160 ou superior | A Otimização do Plano de Confidencialidade de Parâmetro aborda o cenário em que um único plano armazenado em cache para uma consulta parametrizada não é ideal para todos os valores de parâmetro de entrada possíveis, por exemplo, distribuições de dados não uniformes. |
| Compilação adiada de variável da tabela | Sim, com compatibilidade do banco de dados de nível 150 ou superior | Usa a cardinalidade real da variável de tabela encontrada na primeira compilação em vez de uma estimativa fixa. |
Recursos do IQP para SQL Server 2019
| Recurso IQP | Com suporte no SQL Server 2019 (15.x) | Description |
|---|---|---|
| Junções adaptáveis (Modo de Lote) | Sim, no SQL Server 2017 (14.x ou versões posteriores) com compatibilidade do banco de dados de nível 140 | As junções adaptáveis selecionam automaticamente um tipo de junção durante o runtime com base nas linhas de entrada reais. |
| Contagem aproximada distinta | Yes | Forneça estimativas aproximadas COUNT DISTINCT para cenários de Big Data com o benefício de alto desempenho e baixo consumo de memória. |
| Modo de Lote no Rowstore | Sim, com compatibilidade do banco de dados de nível 150 ou superior | Forneça o modo de lote para cargas de trabalho de DW relacionais vinculados à CPU sem exigir índices columnstore. |
| Execução intercalada | Sim, com compatibilidade do banco de dados de nível 140 ou superior | Use a cardinalidade real da função com valor de tabela de várias instruções encontrada na primeira compilação em vez de uma estimativa fixa. |
| Feedback de concessão de memória (Modo de Lote) | Sim, com compatibilidade do banco de dados de nível 140 ou superior | Se uma consulta de modo de lote tiver operações que são despejadas no disco, aumente a memória para execuções consecutivas. Se uma consulta gastar > 50% da memória alocada para 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, com compatibilidade do banco de dados de nível 150 ou superior | Se uma consulta de modo de linha tiver operações que são despejadas no disco, aumente a memória para execuções consecutivas. Se uma consulta gastar > 50% da memória alocada para ela, reduza o tamanho da concessão de memória para execuções consecutivas. |
| Inlining de UDF escalar | Sim, com compatibilidade do banco de dados de nível 150 ou superior | Os UDFs escalares são transformados em expressões relacionais equivalentes que são "embutidas" na consulta que fez a chamada, geralmente resultando em ganhos significativos de desempenho. |
| Compilação adiada de variável da tabela | Sim, com compatibilidade do banco de dados de nível 150 ou superior | Use a cardinalidade real da variável de tabela encontrada na primeira compilação em vez de uma estimativa fixa. |
Recursos do IQP para SQL Server 2017
| Recurso IQP | Com suporte no SQL Server 2017 (14.x) | Description |
|---|---|---|
| Junções adaptáveis (Modo de Lote) | Sim, no SQL Server 2017 (14.x ou versões posteriores) com compatibilidade do banco de dados de nível 140 | As junções adaptáveis selecionam automaticamente um tipo de junção durante o runtime com base nas linhas de entrada reais. |
| Contagem aproximada distinta | Yes | Forneça estimativas aproximadas COUNT DISTINCT para cenários de Big Data com o benefício de alto desempenho e baixo consumo de memória. |
| Execução intercalada | Sim, com compatibilidade do banco de dados de nível 140 ou superior | Use a cardinalidade real da função com valor de tabela de várias instruções encontrada na primeira compilação em vez de uma estimativa fixa. |
| Feedback de concessão de memória (Modo de Lote) | Sim, com compatibilidade do banco de dados de nível 140 ou superior | Se uma consulta de modo de lote tiver operações que são despejadas no disco, aumente a memória para execuções consecutivas. Se uma consulta gastar > 50% da memória alocada para ela, reduza o tamanho da concessão de memória para execuções consecutivas. |
Requisito do Repositório de Consultas
Várias opções do conjunto de recursos de processamento de consulta inteligente exigem que o Repositório de Consultas esteja habilitado para beneficiar o banco de dados de usuário. Para habilitar o Repositório de Consultas, confira Habilitar o Repositório de Consultas.
| Recurso IQP | Requer que o Repositório de Consultas esteja habilitado e READ_WRITE |
|---|---|
| Junções adaptáveis (Modo de Lote) | No |
| Contagem aproximada distinta | No |
| Percentil aproximado | No |
| Modo de Lote no Rowstore | No |
| Feedback da CE (estimativa de cardinalidade) | Yes |
| Comentários de DOP (grau de paralelismo) | 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 de percentil e de persistência) | Yes |
| Imposição de plano otimizado com Repositório de Consultas | Yes |
| Inlining de UDF escalar | No |
| Otimização do plano sensível de parâmetro | Não, mas é recomendado |
| Compilação adiada de variável da tabela | No |
Conteúdo relacionado
- Recursos de processamento de consulta inteligente em detalhes
- Junções (SQL Server)
- Modos de execução
- Guia de arquitetura de processamento de consultas
- Referência de operadores lógicos e físicos do plano de execução
- Novidades no SQL Server 2017
- Novidades no SQL Server 2019
- Novidades no SQL Server 2022
- Feedback de concessão de memória
- Demonstrar o processamento de consulta inteligente
- Dobragem de constantes e avaliação de expressões
- Demonstrações de processamento de consulta inteligente no GitHub
- Central de desempenho do Mecanismo de Banco de Dados do SQL Server e do Banco de Dados SQL do Azure
- Monitorar o desempenho usando o Repositório de Consultas
- Melhores práticas para monitorar cargas de trabalho com o Repositório de Consultas