Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
              Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Förhandsversion av Microsoft Fabric
Funktionsfamiljen intelligent frågebearbetning (IQP) innehåller funktioner med bred inverkan som förbättrar prestandan för befintliga arbetsbelastningar med minimal implementering. Följande bild beskriver familjen med IQP-funktioner och när de först introducerades för SQL Server. Alla IQP-funktioner är tillgängliga i Azure SQL Managed Instance och Azure SQL Database. Vissa funktioner beror på databasens kompatibilitetsnivå.
              
              
              
              
            
Titta på den här videon för en översikt över intelligent frågebearbetning:
Demonstrationer och exempelkod för IQP-funktioner (intelligent frågebearbetning) finns på GitHub https://aka.ms/IQPDemos.
Du kan göra arbetsbelastningar automatiskt berättigade till intelligent frågebearbetning genom att aktivera den tillämpliga databaskompatibilitetsnivån för databasen. Du kan ange detta med Transact-SQL. Till exempel:
ALTER DATABASE [WideWorldImportersDW]
    SET COMPATIBILITY_LEVEL = 170;
Följande tabell beskriver alla intelligenta frågebearbetningsfunktioner, tillsammans med eventuella krav som de har för databasens kompatibilitetsnivå. Fullständig information om alla IQP-funktioner, inklusive viktig information och mer djupgående beskrivningar, finns i Intelligenta frågebearbetningsfunktioner i detalj.
IQP-funktioner för Förhandsversion av Azure SQL Database och SQL Server 2025
| IQP-funktion | Stöds i Azure SQL Database | Stöds i SQL Server 2025 (17.x) Förhandsversion | Description | 
|---|---|---|---|
| Valfri optimering av parameterplan (OPPO) | No | Ja, från och med SQL Server 2025 (17.x) Förhandsversion med kompatibilitetsnivå 170 | Utnyttjar infrastrukturen för anpassningsbar planoptimering (Multiplan) som introducerades med pspo-förbättringen (Parameter Sensitive Plan Optimization), som genererar flera planer från en enda instruktion. Funktionen kan välja en optimalare plan under körning baserat på om en parameter är NULL OR NOT NULL, vilket förbättrar prestandan för frågor som annars skulle prestera suboptimalt för sådana frågemönster. | 
| Feedback om kardinalitetsestimering (CE) för uttryck | No | Ja, från och med SQL Server 2025 (17.x) Förhandsversion med kompatibilitetsnivå 160 | Utökar CE-feedback för att förbättra kardinalitetsuppskattningar för upprepade uttryck mellan frågor genom att lära sig från tidigare körningar och automatiskt tillämpa lämpliga CE-modellval för framtida körningar av dessa uttryck | 
| OPTIMIZED_SP_EXECUTESQL | Yes | Ja, från och med förhandsversionen av SQL Server 2025 (17.x) | Minska effektivt effekten av kompileringsstormar. En kompileringsstorm är en situation där ett stort antal frågor kompileras samtidigt, vilket leder till prestandaproblem och resurskonkurrets. Aktivera den här funktionen för att tillåta att anrop av sp_executesqlbeter sig som objekt, till exempel lagrade procedurer och utlösare ur ett kompilationsperspektiv. | 
IQP-funktioner för Azure SQL Database och SQL Server 2022
| IQP-funktion | Stöds i Azure SQL Database | Stöds i SQL Server 2022 (16.x) och senare versioner | Description | 
|---|---|---|---|
| Anpassningsbara kopplingar (Batch-läge) | Ja, från och med databaskompatibilitetsnivå 140 | Ja, från och med SQL Server 2017 (14.x) med databaskompatibilitetsnivå 140 | Anpassningsbara kopplingar väljer dynamiskt en kopplingstyp under körningstid baserat på faktiska inmatningsrader. | 
| Ungefärlig räkning av distinkta element | Yes | Ja, från och med SQL Server 2019 (15.x) | Ange ungefärligt COUNT DISTINCTför stordatascenarier med fördelen med höga prestanda och ett lågt minnesfotavtryck. | 
| Ungefärlig percentil | Ja, från och med databaskompatibilitetsnivå 110 | Ja, från och med SQL Server 2022 (16.x) med kompatibilitetsnivå 110 | Beräkna snabbt percentiler för en stor datamängd med acceptabla rankningsbaserade felgränsningar för att fatta snabba beslut med hjälp av ungefärliga percentilaggregatfunktioner. | 
| Batchläge på radlagring | Ja, från och med databaskompatibilitetsnivå 150 | Ja, från och med SQL Server 2019 (15.x) med kompatibilitetsnivå 150 | Ange batchläge för CPU-bundna relationsbaserade DW-arbetsbelastningar utan att behöva kolumnlagringsindex. | 
| feedback om kardinalitetsuppskattning (CE) | Ja, från och med databaskompatibilitetsnivå 160 | Ja, från och med SQL Server 2022 (16.x) med kompatibilitetsnivå 160 | Justerar automatiskt kardinalitetsuppskattningar för upprepade frågor för att optimera arbetsbelastningar där ineffektiva CE-antaganden orsakar dåliga frågeprestanda. CE-feedback identifierar och använder ett modellantagande som bättre passar en viss fråga och datadistribution för att förbättra frågekörningsplanens kvalitet. | 
| grad av parallellitet (DOP) feedback | Ja, från och med databaskompatibilitetsnivå 160 | Ja, från och med databaskompatibilitetsnivå 160 | Justerar automatiskt graden av parallellitet för upprepade frågor för att optimera för arbetsbelastningar där ineffektiv parallellitet kan orsaka prestandaproblem. Kräver att Query Store är aktiverat. | 
| Interfolierad exekvering | Ja, från och med databaskompatibilitetsnivå 140 | Ja, från och med SQL Server 2017 (14.x) med databaskompatibilitetsnivå 140 | Använder den faktiska kardinaliteten för tabellvärdesfunktionen med flera instruktioner som påträffades vid den första kompileringen i stället för en fast gissning. | 
| Feedback om minnesbidrag (Batch-läge) | Ja, från och med databaskompatibilitetsnivå 140 | Ja, från och med SQL Server 2017 (14.x) med databaskompatibilitetsnivå 140 | Om en fråga i batchläge har operationer som spills till disken, lägg till mer minne för kommande körningar. Om en fråga slösar bort > 50% av det tilldelade minnesutrymmet, minska storleken på minnestilldelningen för efterföljande körningar. | 
| Feedback om minnesåtergivning (radläge) | Ja, från och med databaskompatibilitetsnivå 150 | Ja, från och med SQL Server 2019 (15.x) med databaskompatibilitetsnivå 150 | Om en fråga i radläge har åtgärder som spills till disk, lägg till mer minne för efterföljande körningar. Om en fråga slösar bort > 50% av det tilldelade minnesutrymmet, minska storleken på minnestilldelningen för efterföljande körningar. | 
| Feedback om minnestilldelning (percentil) | Ja, aktiverat på alla databaser | Ja, från och med SQL Server 2022 (16.x)) med databaskompatibilitetsnivå 140 | Åtgärdar existerande begränsningar för feedback om minnesallokering på ett diskret sätt genom att införliva tidigare frågeexekvering för att förbättra återkopplingen. | 
| Beständighet av Memory Grant feedback | Ja, aktiverat på alla databaser | Ja, från och med SQL Server 2022 (16.x)) med databaskompatibilitetsnivå 140 | Ger ny funktionalitet för att bibehålla feedback om minnestilldelning. Kräver att Query Store är aktiverat för databasen och i READ_WRITEläge. | 
| CE-feedbackbeständighet | Ja, från och med databaskompatibilitetsnivå 160 | Ja, från och med SQL Server 2022 (16.x)) med databaskompatibilitetsnivå 160 | Kräver att Query Store är aktiverat för databasen och i READ_WRITEläge. | 
| Optimering av planstyrning med Query Store | Yes | Ja, från och med SQL Server 2022 (16.x)). | Minskar kompileringskostnaderna för upprepade framtvingade frågor. Mer information finns i Optimerad plan framtvingas med Query Store. | 
| Skalär användardefinierad funktion (UDF) inlining | Ja, från och med databaskompatibilitetsnivå 150 | Ja, från och med SQL Server 2019 (15.x) med databaskompatibilitetsnivå 150 | Skalära UDF:er omvandlas till motsvarande relationella uttryck som infogas i den anropande frågan, vilket ofta resulterar i betydande prestandavinster. | 
| optimering av parameterkänslig plan | Ja, från och med databaskompatibilitetsnivå 160 | Ja, från och med SQL Server 2022 (16.x) med databaskompatibilitetsnivå 160 | Optimering av parameterkänslig plan adresserar scenariot där en enda cachelagrad plan för en parametriserad fråga inte är optimal för alla möjliga inkommande parametervärden, till exempel icke-enhetliga datadistributioner. | 
| Uppskjuten kompilering av tabellvariabel | Ja, från och med databaskompatibilitetsnivå 150 | Ja, från och med SQL Server 2019 (15.x) med databaskompatibilitetsnivå 150 | Använder den faktiska kardinaliteten för tabellvariabeln som påträffades vid den första kompilering i stället för en fast gissning. | 
IQP-funktioner för Azure SQL Managed Instance
| IQP-funktion | Stöds i Azure SQL Managed Instance | Description | 
|---|---|---|
| Anpassningsbara kopplingar (Batch-läge) | Ja, från och med databaskompatibilitetsnivå 140 | Anpassningsbara kopplingar väljer dynamiskt en kopplingstyp under körningstid baserat på faktiska inmatningsrader. | 
| Ungefärlig räkning av distinkta element | Yes | Ange ungefärligt COUNT DISTINCTför stordatascenarier med fördelen med höga prestanda och ett lågt minnesfotavtryck. | 
| Ungefärlig percentil | Ja, från och med databaskompatibilitetsnivå 110 | Beräkna snabbt percentiler för en stor datamängd med acceptabla rankningsbaserade felgränsningar för att fatta snabba beslut med hjälp av ungefärliga percentilaggregatfunktioner. | 
| Batchläge på radlagring | Ja, från och med databaskompatibilitetsnivå 150 | Ange batchläge för CPU-bundna relationsbaserade DW-arbetsbelastningar utan att behöva kolumnlagringsindex. | 
| feedback om kardinalitetsuppskattning (CE) | Ja, från och med databaskompatibilitetsnivå 160 | Justerar automatiskt kardinalitetsuppskattningar för upprepade frågor för att optimera arbetsbelastningar där ineffektiva CE-antaganden orsakar dåliga frågeprestanda. CE-feedback identifierar och använder ett modellantagande som bättre passar en viss fråga och datadistribution för att förbättra frågekörningsplanens kvalitet. | 
| grad av parallellitet (DOP) feedback | Ja, från och med databaskompatibilitetsnivå 160 i Azure SQL Managed Instance med SQL Server 2025 eller alltid aktuelluppdateringspolicy. Nej, för SQL Server 2022-uppdateringsprincipen. | Justerar automatiskt graden av parallellitet för upprepade frågor för att optimera för arbetsbelastningar där ineffektiv parallellitet kan orsaka prestandaproblem. Kräver att Query Store är aktiverat. | 
| Interfolierad exekvering | Ja, från och med databaskompatibilitetsnivå 140 | Använder den faktiska kardinaliteten för tabellvärdesfunktionen med flera instruktioner som påträffades vid den första kompileringen i stället för en fast gissning. | 
| Feedback om minnesbidrag (Batch-läge) | Ja, från och med databaskompatibilitetsnivå 140 | Om en fråga i batchläge har operationer som spills till disken, lägg till mer minne för kommande körningar. Om en fråga slösar bort > 50% av det tilldelade minnesutrymmet, minska storleken på minnestilldelningen för efterföljande körningar. | 
| Feedback om minnesåtergivning (radläge) | Ja, från och med databaskompatibilitetsnivå 150 | Om en fråga i radläge har åtgärder som spills till disk, lägg till mer minne för efterföljande körningar. Om en fråga slösar bort > 50% av det tilldelade minnesutrymmet, minska storleken på minnestilldelningen för efterföljande körningar. | 
| Feedback om minnestilldelning (percentil) | Ja, från och med databaskompatibilitetsnivå 160 | Åtgärdar existerande begränsningar för feedback om minnesallokering på ett diskret sätt genom att införliva tidigare frågeexekvering för att förbättra återkopplingen. | 
| Minnesbidrag, CE- och DOP-feedbackbeständighet | Ja, från och med databaskompatibilitetsnivå 160 | Ger ny funktionalitet för att bibehålla feedback om minnestilldelning. CE- och DOP-feedback sparas alltid. Kräver att Query Store är aktiverat för databasen och i READ_WRITEläge. | 
| Optimering av planstyrning med Query Store | Nej | Minskar kompileringskostnaderna för upprepade framtvingade frågor. Mer information finns i Optimerad plan framtvingas med Query Store. | 
| Skalär användardefinierad funktion (UDF) inlining | Ja, från och med databaskompatibilitetsnivå 150 | Skalära UDF:er omvandlas till motsvarande relationella uttryck som infogas i den anropande frågan, vilket ofta resulterar i betydande prestandavinster. | 
| optimering av parameterkänslig plan | Ja, från och med databaskompatibilitetsnivå 160 | Optimering av parameterkänslighetsplan adresserar scenariot där en enda cachelagrad plan för en parametriserad fråga inte är optimal för alla möjliga inkommande parametervärden, till exempel icke-enhetliga datadistributioner. | 
| Uppskjuten kompilering av tabellvariabel | Ja, från och med databaskompatibilitetsnivå 150 | Använder den faktiska kardinaliteten för tabellvariabeln som påträffades vid den första kompilering i stället för en fast gissning. | 
IQP-funktioner för SQL Server 2019
| IQP-funktion | Stöds i SQL Server 2019 (15.x) | Description | 
|---|---|---|
| Anpassningsbara kopplingar (Batch-läge) | Ja, från och med SQL Server 2017 (14.x) med databaskompatibilitetsnivå 140 | Anpassningsbara kopplingar väljer dynamiskt en kopplingstyp under körningstid baserat på faktiska inmatningsrader. | 
| Ungefärlig räkning av distinkta element | Yes | Ange ungefärligt COUNT DISTINCTför stordatascenarier med fördelen med höga prestanda och ett lågt minnesfotavtryck. | 
| Batchläge på radlagring | Ja, från och med databaskompatibilitetsnivå 150 | Ange batchläge för CPU-bundna relationsbaserade DW-arbetsbelastningar utan att behöva kolumnlagringsindex. | 
| Interfolierad exekvering | Ja, från och med databaskompatibilitetsnivå 140 | Använd den faktiska kardinaliteten för tabellvärdesfunktionen med flera instruktioner som påträffades vid den första kompilering i stället för en fast gissning. | 
| Feedback om minnesbidrag (Batch-läge) | Ja, från och med databaskompatibilitetsnivå 140 | Om en fråga i batchläge har operationer som spills till disken, lägg till mer minne för kommande körningar. Om en fråga slösar bort > 50% av det tilldelade minnesutrymmet, minska storleken på minnestilldelningen för efterföljande körningar. | 
| Feedback om minnesåtergivning (radläge) | Ja, från och med databaskompatibilitetsnivå 150 | Om en fråga i radläge har åtgärder som spills till disk, lägg till mer minne för efterföljande körningar. Om en fråga slösar bort > 50% av det tilldelade minnesutrymmet, minska storleken på minnestilldelningen för efterföljande körningar. | 
| Skalär användardefinierad funktion (UDF) inlining | Ja, från och med databaskompatibilitetsnivå 150 | Skalära UDF:er omvandlas till motsvarande relationella uttryck som infogas i den anropande frågan, vilket ofta resulterar i betydande prestandavinster. | 
| Uppskjuten kompilering av tabellvariabel | Ja, från och med databaskompatibilitetsnivå 150 | Använd den faktiska kardinaliteten för tabellvariabeln som påträffades vid den första kompilering i stället för en fast gissning. | 
IQP-funktioner för SQL Server 2017
| IQP-funktion | Stöds i SQL Server 2017 (14.x) | Description | 
|---|---|---|
| Anpassningsbara kopplingar (Batch-läge) | Ja, från och med SQL Server 2017 (14.x) med databaskompatibilitetsnivå 140 | Anpassningsbara kopplingar väljer dynamiskt en kopplingstyp under körningstid baserat på faktiska inmatningsrader. | 
| Ungefärlig räkning av distinkta element | Yes | Ange ungefärligt COUNT DISTINCTför stordatascenarier med fördelen med höga prestanda och ett lågt minnesfotavtryck. | 
| Interfolierad exekvering | Ja, från och med databaskompatibilitetsnivå 140 | Använd den faktiska kardinaliteten för tabellvärdesfunktionen med flera instruktioner som påträffades vid den första kompilering i stället för en fast gissning. | 
| Feedback om minnesbidrag (Batch-läge) | Ja, från och med databaskompatibilitetsnivå 140 | Om en fråga i batchläge har operationer som spills till disken, lägg till mer minne för kommande körningar. Om en fråga slösar bort > 50% av det tilldelade minnesutrymmet, minska storleken på minnestilldelningen för efterföljande körningar. | 
Krav för Query Store
Flera av de intelligenta frågebearbetningsfunktionerna kräver att Query Store är aktiverat för att kunna dra nytta av användardatabasen. Information om hur du aktiverar Query Store finns i Aktivera Query Store.
| IQP-funktion | Kräver att Query Store är aktiverat och READ_WRITE | 
|---|---|
| Anpassningsbara kopplingar (Batch-läge) | No | 
| Ungefärlig räkning av distinkta element | No | 
| Ungefärlig percentil | No | 
| Batchläge på radlagring | No | 
| feedback om kardinalitetsuppskattning (CE) | Yes | 
| grad av parallellitet (DOP) feedback | Yes | 
| Interfolierad exekvering | No | 
| Feedback om minnesbidrag (Batch-läge) | No | 
| Feedback om minnesåtergivning (radläge) | No | 
| Feedback om minnestilldelning (läge för percentil och varaktighet) | Yes | 
| Optimering av planstyrning med Query Store | Yes | 
| Skalär användardefinierad funktion (UDF) inlining | No | 
| optimering av parameterkänslig plan | Nej, men rekommenderas | 
| Uppskjuten kompilering av tabellvariabel | No | 
Relaterat innehåll
- Intelligenta frågebearbetningsfunktioner i detalj
- Kopplingar (SQL Server)
- Körningslägen
- Arkitekturguide för frågebearbetning
- Logisk och fysisk showplans-operator-referens
- Nyheter i SQL Server 2017
- Nyheter i SQL Server 2019
- Nyheter i SQL Server 2022
- Feedback om minnesåtergivning
- Demonstrera intelligent frågebearbetning
- Utvärdering av konstant vikning och uttryck
- Intelligenta frågebearbetningsdemonstrationer på GitHub
- Prestandacenter för SQL Server Database Engine och Azure SQL Database
- Övervaka prestanda med hjälp av Query Store
- Metodtips för övervakning av arbetsbelastningar med Query Store