Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
De iqp-functiefamilie (Intelligent Query Processing) bevat functies met een brede impact die de prestaties van bestaande workloads verbeteren met minimale implementatie-inspanning die moet worden geïmplementeerd. In de volgende afbeelding wordt de familie van IQP-functies beschreven en toen ze voor het eerst werden geïntroduceerd voor SQL Server. Alle IQP-functies zijn beschikbaar in Azure SQL Managed Instance en Azure SQL Database. Sommige functies zijn afhankelijk van het compatibiliteitsniveau van de database.
Bekijk deze video voor een overzicht van intelligente queryverwerking:
Voor demo's en voorbeeldcode van IQP-functies (Intelligent Query Processing) op GitHub, gaat u naar https://aka.ms/IQPDemos.
U kunt ervoor zorgen dat workloads automatisch in aanmerking komen voor intelligente queryverwerking door het toepasselijke databasecompatibiliteitsniveau voor de database in te schakelen. U kunt dit instellen met Behulp van Transact-SQL. Voorbeeld:
ALTER DATABASE [WideWorldImportersDW] SET COMPATIBILITY_LEVEL = 160;
De volgende tabel bevat alle intelligente queryverwerkingsfuncties, samen met alle vereiste die ze hebben voor databasecompatibiliteitsniveau. Voor volledige informatie over alle IQP-functies, inclusief releaseopmerkingen en uitgebreidere beschrijvingen, raadpleegt u de details van de functie Intelligent Query Processing (IQP).
IQP-functies voor Azure SQL Database en SQL Server 2025 (17.x) Preview
IQP-functie | Ondersteund in Azure SQL Database | Ondersteund in SQL Server 2022 (16.x) | Beschrijving |
---|---|---|---|
Geoptimaliseerde Halloween-beveiliging | Nee. | Ja, te beginnen met SQL Server 2025 (17.x) Preview met compatibiliteitsniveau 170 | Vermindert tempdb het ruimteverbruik en verbetert de queryprestaties door geen spool te gebruiken voor Halloween-beveiliging. |
IQP-functies voor Azure SQL Database en SQL Server 2022 (16.x)
IQP-functie | Ondersteund in Azure SQL Database | Ondersteund in SQL Server 2022 (16.x) | Beschrijving |
---|---|---|---|
Adaptive Joins (Batch-modus) | Ja, beginnend met databasecompatibiliteitsniveau 140 | Ja, vanaf SQL Server 2017 (14.x) met databasecompatibiliteitsniveau 140 | Adaptieve joins selecteren dynamisch een jointype tijdens runtime op basis van werkelijke invoerrijen. |
Geschat aantal uniek | Ja | Ja, vanaf SQL Server 2019 (15.x) | Bieden geschatte COUNT DISTINCT voor big data-scenario's met het voordeel van hoge prestaties en een lage geheugenvoetafdruk. |
Percentiel bij benadering | Ja, beginnend met databasecompatibiliteitsniveau 110 | Ja, vanaf SQL Server 2022 (16.x) met compatibiliteitsniveau 110 | Bereken snel percentielen voor een grote gegevensset met acceptabele op rang gebaseerde foutgrenzen om snelle beslissingen te nemen met behulp van statistische functies van het percentiel. |
Batchmodus in Rowstore | Ja, beginnend met databasecompatibiliteitsniveau 150 | Ja, vanaf SQL Server 2019 (15.x) met compatibiliteitsniveau 150 | Batchmodus bieden voor relationele DW-workloads die afhankelijk zijn van CPU zonder columnstore-indexen. |
feedback over kardinaliteitschatting (CE) | Ja, beginnend met databasecompatibiliteitsniveau 160 | Ja, vanaf SQL Server 2022 (16.x) met compatibiliteitsniveau 160 | Hiermee worden de kardinaliteitschattingen voor herhalende query's automatisch aangepast om workloads te optimaliseren waarbij inefficiënte CE-veronderstellingen slechte queryprestaties veroorzaken. CE-feedback identificeert en gebruikt een modelveronderstelling die beter past bij een bepaalde query en gegevensdistributie om de kwaliteit van het queryuitvoeringsplan te verbeteren. |
Feedback van het parallellismegraad (DOP) | Ja, in preview, te beginnen met databasecompatibiliteitsniveau 160 | Ja, vanaf SQL Server 2022 (16.x) met compatibiliteitsniveau 160 | Hiermee wordt de mate van parallelle uitvoering voor herhalende query's automatisch aangepast om te optimaliseren voor workloads waarbij inefficiënt parallellisme prestatieproblemen kan veroorzaken. Vereist dat Query Store is ingeschakeld. |
Interleaved Execution | Ja, beginnend met databasecompatibiliteitsniveau 140 | Ja, vanaf SQL Server 2017 (14.x) met databasecompatibiliteitsniveau 140 | Maakt gebruik van de werkelijke kardinaliteit van de tabel-gewaardeerde functie met meerdere instructies die bij de eerste compilatie is vastgesteld, in plaats van met een vaste schatting. |
Geheugentoekenning feedback (Batchmodus) | Ja, beginnend met databasecompatibiliteitsniveau 140 | Ja, vanaf SQL Server 2017 (14.x) met databasecompatibiliteitsniveau 140 | Als een batchmodusquery bewerkingen bevat die overlopen naar schijf, voegt u meer geheugen toe voor opeenvolgende uitvoeringen. Als een query 50% van het toegewezen geheugen verspilt > , vermindert u de geheugentoekenningsgrootte voor opeenvolgende uitvoeringen. |
Feedback over geheugen verlenen (rijmodus) | Ja, beginnend met databasecompatibiliteitsniveau 150 | Ja, vanaf SQL Server 2019 (15.x) met databasecompatibiliteitsniveau 150 | Als een rijmodusquery bewerkingen bevat die overlopen naar schijf, voegt u meer geheugen toe voor opeenvolgende uitvoeringen. Als een query > 50% van het toegewezen geheugen verspilt, vermindert u de geheugentoekenningshoeveelheid voor opeenvolgende uitvoeringen. |
Feedback voor geheugen toewijzing (percentiel) | Ja, ingeschakeld voor alle databases | Ja, beginnend met SQL Server 2022 (16.x)) met databasecompatibiliteitsniveau 140 | Behandelt bestaande beperkingen van feedback over geheugentoekenning op een niet-invasieve manier door gebruik te maken van eerdere uitvoeringen van query's om feedback te verfijnen. |
Persistentie van geheugentoewijzingsfeedback | Ja, ingeschakeld voor alle databases | Ja, beginnend met SQL Server 2022 (16.x)) met databasecompatibiliteitsniveau 140 | Biedt nieuwe functionaliteit om feedback over geheugentoekenning te behouden. Vereist dat Query Store is ingeschakeld voor de database en in READ_WRITE modus. |
CE-feedbackpersistentie | Ja, beginnend met databasecompatibiliteitsniveau 160 | Ja, te beginnen met SQL Server 2022 (16.x)) met databasecompatibiliteitsniveau 160 | Vereist dat Query Store is ingeschakeld voor de database en in READ_WRITE modus. |
Persistentie van DOP-feedback | Ja, in preview, te beginnen met databasecompatibiliteitsniveau 160 | Ja, te beginnen met SQL Server 2022 (16.x)) met databasecompatibiliteitsniveau 160 | Vereist dat Query Store is ingeschakeld voor de database en in READ_WRITE modus. |
Geoptimaliseerde plan doorvoering | Ja | Ja, beginnend met SQL Server 2022 (16.x)). | Vermindert de compilatieoverhead voor het herhalen van geforceerde query's. Zie Geoptimaliseerd plan afdwingen met Query Store voor meer informatie. |
Scalaire UDF-inlining | Ja, beginnend met databasecompatibiliteitsniveau 150 | Ja, vanaf SQL Server 2019 (15.x) met databasecompatibiliteitsniveau 150 | Scalaire UDF's worden omgezet in gelijkwaardige relationele expressies die 'inlined' zijn in de aanroepende query, wat vaak resulteert in aanzienlijke prestatieverbeteringen. |
Optimalisatie van parametergevoeligheidsplan | Ja, beginnend met databasecompatibiliteitsniveau 160 | Ja, vanaf SQL Server 2022 (16.x) met databasecompatibiliteitsniveau 160 | Met parametergevoelige planoptimalisatie wordt het scenario opgelost waarbij één plan in de cache voor een geparameteriseerde query niet optimaal is voor alle mogelijke binnenkomende parameterwaarden, bijvoorbeeld niet-uniforme gegevensdistributies. |
Uitgestelde compilatie van tabelvariabele | Ja, beginnend met databasecompatibiliteitsniveau 150 | Ja, vanaf SQL Server 2019 (15.x) met databasecompatibiliteitsniveau 150 | Gebruikt de werkelijke kardinaliteit van de tabelvariabele die op de eerste compilatie is aangetroffen in plaats van een vaste schatting. |
IQP-functies voor Azure SQL Managed Instance
IQP-functie | Ondersteund in Azure SQL Managed Instance | Beschrijving |
---|---|---|
Adaptieve joins (Batch-modus) | Ja, beginnend met databasecompatibiliteitsniveau 140 | Adaptieve joins selecteren dynamisch een jointype tijdens runtime op basis van werkelijke invoerrijen. |
Geschatte aantal unieke | Ja | Bieden geschatte COUNT DISTINCT voor big data-scenario's met het voordeel van hoge prestaties en een lage geheugenvoetafdruk. |
Percentiel bij benadering | Ja, beginnend met databasecompatibiliteitsniveau 110 | Bereken snel percentielen voor een grote gegevensset met acceptabele op rang gebaseerde foutgrenzen om snelle beslissingen te nemen met behulp van statistische functies van het percentiel. |
Batchmodus in Rowstore | Ja, beginnend met databasecompatibiliteitsniveau 150 | Batchmodus bieden voor relationele DW-workloads die afhankelijk zijn van CPU zonder columnstore-indexen. |
feedback over kardinaliteitschatting (CE) | Ja, beginnend met databasecompatibiliteitsniveau 160 | Hiermee worden de kardinaliteitschattingen voor herhalende query's automatisch aangepast om workloads te optimaliseren waarbij inefficiënte CE-veronderstellingen slechte queryprestaties veroorzaken. CE-feedback identificeert en gebruikt een modelveronderstelling die beter past bij een bepaalde query en gegevensdistributie om de kwaliteit van het queryuitvoeringsplan te verbeteren. |
Feedback van het parallellismegraad (DOP) | Nee | Hiermee wordt de mate van parallelle uitvoering voor herhalende query's automatisch aangepast om te optimaliseren voor workloads waarbij inefficiënt parallellisme prestatieproblemen kan veroorzaken. Vereist dat Query Store is ingeschakeld. |
Interleaved Execution | Ja, beginnend met databasecompatibiliteitsniveau 140 | Maakt gebruik van de werkelijke kardinaliteit van de tabel-gewaardeerde functie met meerdere instructies die bij de eerste compilatie is aangetroffen in plaats van een vaste voorspelling. |
Feedback over geheugentoewijzing (Batch-modus) | Ja, beginnend met databasecompatibiliteitsniveau 140 | Als een batchmodusquery bewerkingen bevat die overlopen naar schijf, voegt u meer geheugen toe voor opeenvolgende uitvoeringen. Als een query > 50% van het toegewezen geheugen verspilt, vermindert u de geheugentoekenningsgrootte voor opeenvolgende uitvoeringen. |
Geheugenaanvraagfeedback (rijmodus) | Ja, beginnend met databasecompatibiliteitsniveau 150 | Als een rijmodusquery bewerkingen bevat die overlopen naar schijf, voegt u meer geheugen toe voor opeenvolgende uitvoeringen. Als een query 50% > van het toegewezen geheugen verspilt, verklein de geheugentoekenningsgrootte voor opeenvolgende uitvoeringen. |
Feedback over geheugenaanvragen (percentiel) | Ja, beginnend met databasecompatibiliteitsniveau 160 | Behandelt bestaande beperkingen van feedback over geheugentoekenning op een niet-intrusieve manier door eerdere query-uitvoeringen op te nemen om feedback te verfijnen. |
Geheugentoekenning, CE en DOP-feedbackpersistentie | Ja, beginnend met databasecompatibiliteitsniveau 160 | Biedt nieuwe functionaliteit om feedback over geheugentoewijzing te behouden. CE- en DOP-feedback blijven altijd behouden. Vereist dat Query Store is ingeschakeld voor de database en in READ_WRITE modus. |
Geoptimaliseerd plan forceren | Nee | Vermindert de compilatieoverhead voor het herhalen van geforceerde query's. Zie Geoptimaliseerd plan afdwingen met Query Store voor meer informatie. |
Scalaire UDF-inlining | Ja, beginnend met databasecompatibiliteitsniveau 150 | Scalaire UDF's worden omgezet in gelijkwaardige relationele expressies die 'inlined' zijn in de aanroepende query, wat vaak resulteert in aanzienlijke prestatieverbeteringen. |
Optimalisatie van parametergevoeligheidsplan | Ja, beginnend met databasecompatibiliteitsniveau 160 | Met parametergevoeligheidsplanoptimalisatie wordt het scenario opgelost waarbij één plan in de cache voor een geparameteriseerde query niet optimaal is voor alle mogelijke binnenkomende parameterwaarden, bijvoorbeeld niet-uniforme gegevensdistributies. |
Uitgestelde compilatie van tabelvariabelen | Ja, beginnend met databasecompatibiliteitsniveau 150 | Gebruikt de werkelijke kardinaliteit van de tabelvariabele die op de eerste compilatie is aangetroffen in plaats van een vaste schatting. |
IQP-functies voor SQL Server 2019 (15.x)
IQP-functie | Ondersteund in SQL Server 2019 (15.x) | Beschrijving |
---|---|---|
Adaptieve joins (Batch-modus) | Ja, vanaf SQL Server 2017 (14.x) met databasecompatibiliteitsniveau 140 | Adaptieve joins selecteren dynamisch een jointype tijdens runtime op basis van werkelijke invoerrijen. |
Geschatte telling unieke waarden | Ja | Lever een geschatte COUNT DISTINCT voor big data-scenario's met de voordelen van hoge prestaties en een laag geheugengebruik. |
Batchmodus in Rowstore | Ja, beginnend met databasecompatibiliteitsniveau 150 | Batchmodus bieden voor relationele DW-workloads die afhankelijk zijn van CPU zonder columnstore-indexen. |
Interleaved Execution | Ja, beginnend met databasecompatibiliteitsniveau 140 | Gebruik de werkelijke kardinaliteit van de multi-statement table-valued functie die bij de eerste compilatie wordt aangetroffen in plaats van een vaste schatting. |
Geheugentoekenning feedback (Batchmodus) | Ja, beginnend met databasecompatibiliteitsniveau 140 | Als een batchmodusquery bewerkingen bevat die overlopen naar schijf, voegt u meer geheugen toe voor opeenvolgende uitvoeringen. Als een query > 50% van het toegewezen geheugen verspilt, verminder dan de geheugentoekenningsgrootte voor opeenvolgende uitvoeringen. |
Feedback voor geheugentoekenning (rijmodus) | Ja, beginnend met databasecompatibiliteitsniveau 150 | Als een rijmodusquery bewerkingen bevat die overlopen naar schijf, voegt u meer geheugen toe voor opeenvolgende uitvoeringen. Als een query > 50% van het toegewezen geheugen verspilt, verminder dan de geheugentoekenning voor opeenvolgende uitvoeringen. |
Scalaire UDF-inlining | Ja, beginnend met databasecompatibiliteitsniveau 150 | Scalaire UDF's worden omgezet in gelijkwaardige relationele expressies die 'inlined' zijn in de aanroepende query, wat vaak resulteert in aanzienlijke prestatieverbeteringen. |
Uitgestelde compilatie van tabelvariabelen | Ja, beginnend met databasecompatibiliteitsniveau 150 | Gebruik de werkelijke kardinaliteit van de tabelvariabele die op de eerste compilatie is aangetroffen in plaats van een vaste schatting. |
IQP-functies voor SQL Server 2017 (14.x)
IQP-functie | Ondersteund in SQL Server 2017 (14.x) | Beschrijving |
---|---|---|
Adaptive Joins (Batch-modus) | Ja, vanaf SQL Server 2017 (14.x) met databasecompatibiliteitsniveau 140 | Adaptieve joins selecteren dynamisch een jointype tijdens runtime op basis van werkelijke invoerrijen. |
Geschat aantal uniek | Ja | Bieden geschatte COUNT DISTINCT voor big data-scenario's met het voordeel van hoge prestaties en een lage geheugenvoetafdruk. |
Interleaved Execution | Ja, beginnend met databasecompatibiliteitsniveau 140 | Gebruik de werkelijke kardinaliteit van de multi-statement table-valued functie die bij de eerste compilatie wordt aangetroffen in plaats van een vaste schatting. |
Geheugentoekenning feedback (Batchmodus) | Ja, beginnend met databasecompatibiliteitsniveau 140 | Als een batchmodusquery bewerkingen bevat die overlopen naar schijf, voegt u meer geheugen toe voor opeenvolgende uitvoeringen. Als een query 50% van het toegewezen geheugen verspilt > , vermindert u de geheugentoekenningsgrootte voor opeenvolgende uitvoeringen. |
Query Store vereiste
Voor een aantal van de functies voor intelligente queryverwerking moet Query Store zijn ingeschakeld om de gebruikersdatabase te kunnen gebruiken. Zie Query Store inschakelen om de Query Store in te schakelen.
IQP-functie | Vereist dat de Query Store is ingeschakeld en ingesteld op READ_WRITE. |
---|---|
Adaptive Joins (Batch-modus) | Nee. |
Geschat aantal uniek | Nee. |
Percentiel bij benadering | Nee. |
Batchmodus in Rowstore | Nee. |
feedback over kardinaliteitschatting (CE) | Ja |
Feedback van het parallellismegraad (DOP) | Ja |
Interleaved Execution | Nee. |
Geheugentoekenning feedback (Batchmodus) | Nee. |
Feedback over geheugen verlenen (rijmodus) | Nee. |
Terugkoppeling over geheugentoewijzing (percentiel- en persistentiemodus) | Ja |
Geoptimaliseerd plan doorvoeren | Ja |
Scalaire UDF-inlining | Nee. |
Optimalisatie van parametergevoeligheidsplan | Nee, maar aanbevolen |
Uitgestelde compilatie van tabelvariabelen | Nee. |
Verwante inhoud
Voor volledige informatie over alle IQP-functies, inclusief releaseopmerkingen en uitgebreidere beschrijvingen, raadpleegt u de details van de functie Intelligent Query Processing (IQP).
- Joins (SQL Server)
- Uitvoeringsmodi
- architectuurhandleiding voor verwerking van query's
- Showplan Verwijzing naar Logische en Fysieke Operatoren
- Wat is nieuw in SQL Server 2017
- nieuwe functies in SQL Server 2019
- Wat is er nieuw in SQL Server 2022
- geheugen feedback geven
- Intelligente queryverwerking demonstreren
- Constante Vouwen en Expressie-evaluatie
- Demo's voor intelligente queryverwerking op GitHub
- Prestatiecentrum voor SQL Server Database Engine en Azure SQL Database
- Prestaties controleren via de Query Store
- Aanbevolen procedures voor het bewaken van workloads met Query Store