Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Řada funkcí inteligentního zpracování dotazů (IQP) zahrnuje funkce s širokým dopadem, které zlepšují výkon stávajících úloh s minimálním úsilím implementace, které je potřeba přijmout. Následující obrázek podrobně popisuje řadu funkcí IQP a kdy byly poprvé zavedeny pro SQL Server. Všechny funkce IQP jsou dostupné v Azure SQL Managed Instance a Azure SQL Database. Některé funkce závisí na úrovni kompatibility databáze.
V tomto videu najdete přehled inteligentního zpracování dotazů:
Ukázky a vzorový kód funkcí inteligentního zpracování dotazů (IQP) najdete v GitHub ukázkovém úložišti.
Úlohy můžete automaticky využít k inteligentnímu zpracování dotazů povolením příslušné úrovně kompatibility databáze pro databázi. Můžete to nastavit pomocí Transact-SQL. Například:
ALTER DATABASE [WideWorldImportersDW]
SET COMPATIBILITY_LEVEL = 170;
Následující tabulka obsahuje podrobnosti o všech funkcích inteligentního zpracování dotazů spolu s požadavky, které mají pro úroveň kompatibility databáze. Podrobné informace o všech funkcích IQP, včetně poznámek k verzi a podrobnějších popisů, najdete v tématu Funkce inteligentního zpracování dotazů.
Funkce IQP pro Azure SQL Database a SQL Server 2025
| Funkce IQP | Podporováno v Azure SQL Database | Podporováno v SQL Server 2025 (17.x) | Description |
|---|---|---|---|
| Volitelná optimalizace plánu parametrů (OPPO) | Ano, počínaje úrovní kompatibility databáze 170 | Ano, počínaje SQL Server 2025 (17.x) s úrovní kompatibility databáze 170 | Využívá infrastrukturu optimalizace adaptivního plánu (Multiplan), která byla zavedena s vylepšením optimalizace plánu citlivého na parametry (PSPO), která generuje více plánů z jednoho příkazu. Funkce může zvolit optimální plán za běhu na základě toho, jestli je NULL OR NOT NULLparametr , což zlepšuje výkon dotazů, které by jinak mohly být pro takové vzory dotazů neoptimální. |
| Zpětná vazba k odhadu kardinality (CE) pro výrazy | Ano, počínaje úrovní kompatibility databáze 170 | Ano, počínaje SQL Server 2025 (17.x) s úrovní kompatibility databáze 160 | Rozšiřuje zpětnou vazbu CE, aby zlepšila odhad kardinality pro opakující se výrazy napříč dotazy tím, že se učí z předchozích spuštění a automaticky použije příslušné volby modelu CE pro budoucí spuštění těchto výrazů. |
| OPTIMIZED_SP_EXECUTESQL | Yes | Ano, počínaje SQL Server 2025 (17.x) | Účinně snižte dopad náporu při kompilaci. Kompilační bouře je situace, kdy se současně kompiluje velký počet dotazů, což vede k problémům s výkonem a konfliktu zdrojů. Povolte tuto funkci, aby bylo možné, že vyvolání sp_executesql se chovají jako objekty, například uložené procedury a triggery, z pohledu kompilace. |
Funkce IQP pro Azure SQL Database a SQL Server 2022
| Funkce IQP | Podporováno v Azure SQL Database | Podporováno v SQL Server 2022 (16.x) a novějších verzích | Description |
|---|---|---|---|
| Adaptivní spojení (režim batch) | Ano, počínaje úrovní kompatibility databáze 140 | Ano, počínaje SQL Server 2017 (14.x) s úrovní kompatibility databáze 140 | Adaptivní spojení dynamicky vybírají typ spojení během běhu na základě skutečných vstupních řádků. |
| Přibližný počet jedinečných | Yes | Ano, počínaje SQL Server 2019 (15.x) | Poskytněte přibližné COUNT DISTINCT řešení pro velké objemy dat s výhodou vysokého výkonu a nízkou paměťovou náročností. |
| Přibližný percentil | Ano, počínaje úrovní kompatibility databáze 110 | Ano, počínaje SQL Server 2022 (16.x) s úrovní kompatibility 110 | Rychlé výpočty percentilů pro velkou datovou sadu s přijatelnými hranicemi chyb založených na pořadí, které pomáhají rychle rozhodovat pomocí přibližných agregačních funkcí percentilu. |
| Dávkový režim v úložišti řádků | Ano, počínaje úrovní kompatibility databáze 150 | Ano, počínaje SQL Server 2019 (15.x) s úrovní kompatibility 150 | Poskytnout dávkové zpracování pro úlohy relačního datového skladu omezené procesorem bez použití indexů sloupcového úložiště. |
| zpětná vazba na odhad kardinality (CE) | Ano, počínaje úrovní kompatibility databáze 160 | Ano, počínaje SQL Server 2022 (16.x) s úrovní kompatibility 160 | Automaticky upraví odhady kardinality pro opakující se dotazy a optimalizuje úlohy, u kterých neefektivní předpoklady CE způsobují nízký výkon dotazů. Zpětná vazba CE identifikuje a použije modelový předpoklad, který lépe vyhovuje danému dotazu a distribuci dat, aby se zlepšila kvalita plánu provádění dotazů. |
| Zpětná vazba na stupeň paralelismu (DOP) | Ano, počínaje úrovní kompatibility databáze 160 | Ano, počínaje úrovní kompatibility databáze 160 | Automaticky upraví stupeň paralelismu pro opakující se dotazy, aby se optimalizovaly pro úlohy, kde neefektivní paralelismus může způsobit problémy s výkonem. Vyžaduje povolení Query Store. |
| Prokládání provádění | Ano, počínaje úrovní kompatibility databáze 140 | Ano, počínaje SQL Server 2017 (14.x) s úrovní kompatibility databáze 140 | Použije skutečnou kardinalitu tabulkové funkce vyhodnocující více příkazů, která byla zjištěna při první kompilaci, místo pevně stanoveného odhadu. |
| Zpětná vazba k udělení paměti (režim Batch) | Ano, počínaje úrovní kompatibility databáze 140 | Ano, počínaje SQL Server 2017 (14.x) s úrovní kompatibility databáze 140 | Pokud dotaz v dávkovém režimu obsahuje operace, které přetéknou na disk, přidejte další paměť pro po sobě jdoucí spuštění. Pokud dotaz promarní > 50% přidělené paměti, snižte velikost přidělení paměti pro následná spuštění. |
| Zpětná vazba k příspěvku paměti (režim řádkového zpracování) | Ano, počínaje úrovní kompatibility databáze 150 | Ano, počínaje SQL Server 2019 (15.x) s úrovní kompatibility databáze 150 | Pokud dotaz v režimu řádku obsahuje operace, které přetéknou na disk, přidejte další paměť pro po sobě jdoucí spuštění. Pokud dotaz promarní > 50% přidělené paměti, snižte velikost přidělení paměti pro následná spuštění. |
| Zpětná vazba na přidělení paměti (Percentil) | Ano, povoleno u všech databází | Ano, počínaje verzí SQL Server 2022 (16.x)) s úrovní kompatibility databáze 140 | Řeší stávající omezení u zpětné vazby na udělování paměti nerušivým způsobem tím, že začleňuje předchozí provádění dotazů pro upřesnění zpětné vazby. |
| Trvalost využití paměťové zpětné vazby | Ano, povoleno u všech databází | Ano, počínaje verzí SQL Server 2022 (16.x)) s úrovní kompatibility databáze 140 | Poskytuje nové funkce pro zachování zpětné vazby k paměti. Vyžaduje povolení Query Store pro databázi a v režimu READ_WRITE. |
| Trvalost zpětné vazby CE | Ano, počínaje úrovní kompatibility databáze 160 | Ano, počínaje verzí SQL Server 2022 (16.x)) s úrovní kompatibility databáze 160 | Vyžaduje povolení Query Store pro databázi a v režimu READ_WRITE. |
| Optimalizované plánování pomocí Query Store | Yes | Ano, počínaje SQL Server 2022 (16.x)). | Snižuje náklady na kompilaci pro opakující se vynucené dotazy. Další informace najdete v tématu Optimalizované vynucení plánu s Query Store. |
| Vkládání skalárních UDF | Ano, počínaje úrovní kompatibility databáze 150 | Ano, počínaje SQL Server 2019 (15.x) s úrovní kompatibility databáze 150 | Skalární funkce definované uživatelem se transformují na ekvivalentní relační výrazy, které jsou "vložené" do volajícího dotazu, což často vede k významným nárůstům výkonu. |
| Optimalizace plánu citlivého na parametry | Ano, počínaje úrovní kompatibility databáze 160 | Ano, počínaje SQL Server 2022 (16.x) s úrovní kompatibility databáze 160 | Optimalizace plánu citlivého parametru řeší scénář, kdy jeden plán uložený v mezipaměti parametrizovaného dotazu není optimální pro všechny možné příchozí hodnoty parametrů, například ne uniformní distribuce dat. |
| Odložená kompilace proměnné tabulky | Ano, počínaje úrovní kompatibility databáze 150 | Ano, počínaje SQL Server 2019 (15.x) s úrovní kompatibility databáze 150 | Použije skutečnou kardinalitu proměnné tabulky, ke které došlo při první kompilaci, místo pevného odhadu. |
Funkce IQP pro Azure SQL Managed Instance
| Funkce IQP | Podporováno v Azure SQL Managed Instance | Description |
|---|---|---|
| Adaptivní spojení (režim batch) | Ano, počínaje úrovní kompatibility databáze 140 | Adaptivní spojení dynamicky vybírají typ spojení během běhu na základě skutečných vstupních řádků. |
| Přibližný počet jedinečných | Yes | Poskytněte přibližné COUNT DISTINCT řešení pro velké objemy dat s výhodou vysokého výkonu a nízkou paměťovou náročností. |
| Přibližný percentil | Ano, počínaje úrovní kompatibility databáze 110 | Rychlé výpočty percentilů pro velkou datovou sadu s přijatelnými hranicemi chyb založených na pořadí, které pomáhají rychle rozhodovat pomocí přibližných agregačních funkcí percentilu. |
| Dávkový režim v úložišti řádků | Ano, počínaje úrovní kompatibility databáze 150 | Poskytnout dávkové zpracování pro úlohy relačního datového skladu omezené procesorem bez použití indexů sloupcového úložiště. |
| zpětná vazba na odhad kardinality (CE) | Ano, počínaje úrovní kompatibility databáze 160 | Automaticky upraví odhady kardinality pro opakující se dotazy a optimalizuje úlohy, u kterých neefektivní předpoklady CE způsobují nízký výkon dotazů. Zpětná vazba CE identifikuje a použije modelový předpoklad, který lépe vyhovuje danému dotazu a distribuci dat, aby se zlepšila kvalita plánu provádění dotazů. |
| Zpětná vazba k odhadu kardinality (CE) pro výrazy | Ano, počínaje úrovní kompatibility databáze 160 v Azure SQL Managed Instance s SQL Server 2025 nebo Always-up-to-dateupdate policy. Ne, pro zásady aktualizace SQL Server 2022. | Rozšiřuje zpětnou vazbu CE, aby zlepšila odhad kardinality pro opakující se výrazy napříč dotazy tím, že se učí z předchozích spuštění a automaticky použije příslušné volby modelu CE pro budoucí spuštění těchto výrazů. |
| Zpětná vazba na stupeň paralelismu (DOP) | Ano, počínaje úrovní kompatibility databáze 160 v Azure SQL Managed Instance s SQL Server 2025 nebo Always-up-to-dateupdate policy. Ne, pro zásady aktualizace SQL Server 2022. | Automaticky upraví stupeň paralelismu pro opakující se dotazy, aby se optimalizovaly pro úlohy, kde neefektivní paralelismus může způsobit problémy s výkonem. Vyžaduje povolení Query Store. |
| Prokládání spouštění | Ano, počínaje úrovní kompatibility databáze 140 | Použije skutečnou kardinalitu tabulkové funkce vyhodnocující více příkazů, která byla zjištěna při první kompilaci, místo pevně stanoveného odhadu. |
| Zpětná vazba k udělení paměti (režim Batch) | Ano, počínaje úrovní kompatibility databáze 140 | Pokud dotaz v dávkovém režimu obsahuje operace, které přetéknou na disk, přidejte další paměť pro po sobě jdoucí spuštění. Pokud dotaz promarní > 50% přidělené paměti, snižte velikost přidělení paměti pro následná spuštění. |
| Zpětná vazba k příspěvku paměti (režim řádkového zpracování) | Ano, počínaje úrovní kompatibility databáze 150 | Pokud dotaz v režimu řádku obsahuje operace, které přetéknou na disk, přidejte další paměť pro po sobě jdoucí spuštění. Pokud dotaz promarní > 50% přidělené paměti, snižte velikost přidělení paměti pro následná spuštění. |
| Zpětná vazba na přidělení paměti (Percentil) | Ano, počínaje úrovní kompatibility databáze 160 | Řeší stávající omezení u zpětné vazby na udělování paměti nerušivým způsobem tím, že začleňuje předchozí provádění dotazů pro upřesnění zpětné vazby. |
| Trvalost zpětné vazby k paměti, CE a DOP | Ano, počínaje úrovní kompatibility databáze 160 | Poskytuje nové funkce pro zachování zpětné vazby k paměti. Zpětná vazba k CE a DOP je vždy uchována. Vyžaduje povolení Query Store pro databázi a v režimu READ_WRITE. |
| Volitelná optimalizace plánu parametrů (OPPO) | Ano, počínaje úrovní kompatibility databáze 170 v Azure SQL Managed Instance s SQL Server 2025 nebo aktualizační politikou Always-up-to-date. Ne, pro zásady aktualizace SQL Server 2022. | Využívá infrastrukturu optimalizace adaptivního plánu (Multiplan), která byla zavedena s vylepšením optimalizace plánu citlivého na parametry (PSPO), která generuje více plánů z jednoho příkazu. Funkce může zvolit optimální plán za běhu na základě toho, jestli je NULL OR NOT NULLparametr , což zlepšuje výkon dotazů, které by jinak mohly být pro takové vzory dotazů neoptimální. |
| Optimalizované plánování pomocí Query Store | Ne | Snižuje náklady na kompilaci pro opakující se vynucené dotazy. Další informace najdete v tématu Optimalizované vynucení plánu s Query Store. |
| Optimalizace plánu citlivého na parametry | Ano, počínaje úrovní kompatibility databáze 160 | Optimalizace plánu citlivosti parametru řeší scénář, kdy jeden plán uložený v mezipaměti parametrizovaného dotazu není optimální pro všechny možné příchozí hodnoty parametrů, například ne uniformní distribuce dat. |
| Vkládání skalárních UDF | Ano, počínaje úrovní kompatibility databáze 150 | Skalární funkce definované uživatelem se transformují na ekvivalentní relační výrazy, které jsou "vložené" do volajícího dotazu, což často vede k významným nárůstům výkonu. |
| Odložená kompilace proměnné tabulky | Ano, počínaje úrovní kompatibility databáze 150 | Použije skutečnou kardinalitu proměnné tabulky, ke které došlo při první kompilaci, místo pevného odhadu. |
Funkce IQP pro SQL Server 2019
| Funkce IQP | Podporováno v SQL Server 2019 (15.x) | Description |
|---|---|---|
| Adaptivní spojení (režim batch) | Ano, počínaje SQL Server 2017 (14.x) s úrovní kompatibility databáze 140 | Adaptivní spojení dynamicky vybírají typ spojení během běhu na základě skutečných vstupních řádků. |
| Přibližný počet jedinečných | Yes | Poskytněte přibližné COUNT DISTINCT řešení pro velké objemy dat s výhodou vysokého výkonu a nízkou paměťovou náročností. |
| Dávkový režim v úložišti řádků | Ano, počínaje úrovní kompatibility databáze 150 | Poskytnout dávkové zpracování pro úlohy relačního datového skladu omezené procesorem bez použití indexů sloupcového úložiště. |
| Prokládání provádění | Ano, počínaje úrovní kompatibility databáze 140 | Místo pevného odhadu použijte skutečnou kardinalitu vícepříkazové tabulkové funkce zjištěnou při první kompilaci. |
| Zpětná vazba k udělení paměti (režim Batch) | Ano, počínaje úrovní kompatibility databáze 140 | Pokud dotaz v dávkovém režimu obsahuje operace, které přetéknou na disk, přidejte další paměť pro po sobě jdoucí spuštění. Pokud dotaz promarní > 50% přidělené paměti, snižte velikost přidělení paměti pro následná spuštění. |
| Zpětná vazba k příspěvku paměti (režim řádkového zpracování) | Ano, počínaje úrovní kompatibility databáze 150 | Pokud dotaz v režimu řádku obsahuje operace, které přetéknou na disk, přidejte další paměť pro po sobě jdoucí spuštění. Pokud dotaz promarní > 50% přidělené paměti, snižte velikost přidělení paměti pro následná spuštění. |
| Vkládání skalárních UDF | Ano, počínaje úrovní kompatibility databáze 150 | Skalární funkce definované uživatelem se transformují na ekvivalentní relační výrazy, které jsou "vložené" do volajícího dotazu, což často vede k významným nárůstům výkonu. |
| Odložená kompilace proměnné tabulky | Ano, počínaje úrovní kompatibility databáze 150 | Místo pevného odhadu použijte skutečnou kardinalitu proměnné tabulky, která byla zjištěna při první kompilaci. |
Funkce IQP pro SQL Server 2017
| Funkce IQP | Podporováno v SQL Server 2017 (14.x) | Description |
|---|---|---|
| Adaptivní spojení (režim batch) | Ano, počínaje SQL Server 2017 (14.x) s úrovní kompatibility databáze 140 | Adaptivní spojení dynamicky vybírají typ spojení během běhu na základě skutečných vstupních řádků. |
| Přibližný počet jedinečných | Yes | Poskytněte přibližné COUNT DISTINCT řešení pro velké objemy dat s výhodou vysokého výkonu a nízkou paměťovou náročností. |
| Prokládání provádění | Ano, počínaje úrovní kompatibility databáze 140 | Místo pevného odhadu použijte skutečnou kardinalitu vícepříkazové tabulkové funkce zjištěnou při první kompilaci. |
| Zpětná vazba k udělení paměti (režim Batch) | Ano, počínaje úrovní kompatibility databáze 140 | Pokud dotaz v dávkovém režimu obsahuje operace, které přetéknou na disk, přidejte další paměť pro po sobě jdoucí spuštění. Pokud dotaz promarní > 50% přidělené paměti, snižte velikost přidělení paměti pro následná spuštění. |
požadavek na Query Store
Několik funkcí inteligentního zpracování dotazů vyžaduje, aby byl Query Store povolen, aby to bylo přínosem pro uživatelskou databázi. Pokud chcete povolit Query Store, přečtěte si téma Enable Query Store.
Související obsah
- Funkce inteligentního zpracování dotazů podrobně
- Joins (SQL Server)
- Režimy provádění
- Průvodce architekturou zpracování dotazů
- Odkaz na operátory logického a fyzického plánu zobrazení
- Co je nového v SQL Server 2017
- Co je nového v SQL Server 2019
- Co je nového v SQL Server 2022
- Zpětná vazba k udělení paměti
- Ukázka inteligentního zpracování dotazů
- Konstantní posouvání a vyhodnocení výrazů
- ukázky zpracování dotazů Intelligent na GitHub
- Centrum výkonu pro Databázový stroj systému SQL Server a Azure SQL Database
- Sledujte výkon pomocí nástroje Query Store
- Nejlepší postupy pro monitorování úloh pomocí Query Store