Sdílet prostřednictvím


Inteligentní zpracování dotazů v databázích SQL

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLDatabáze SQL v Microsoft Fabric

Ř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 k dispozici ve službě Azure SQL Managed Instance a Azure SQL Database. Některé funkce závisí na úrovni kompatibility databáze.

Diagram znázorňující funkce v řady inteligentního zpracování dotazů a jejich zavedení v SQL Serveru

V tomto videu najdete přehled inteligentního zpracování dotazů:

 

Ukázky a vzorový kód inteligentního zpracování dotazů (IQP) najdete na GitHubu https://aka.ms/IQPDemos.

Ú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í jazyka 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 ve službě Azure SQL Database Podporováno v SQL Serveru 2025 (17.x) Description
Volitelná optimalizace plánu parametrů (OPPO) No Ano, počínaje SQL Serverem 2025 (17.x) s úrovní kompatibility 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 No Ano, počínaje SQL Serverem 2025 (17.x) s úrovní kompatibility 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 Serverem 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 ve službě Azure SQL Database Podporováno v SQL Serveru 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 Serverem 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 Serverem 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 Serverem 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 Serverem 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ě.
odhad kardinality (CE) zpětné vazby Ano, počínaje úrovní kompatibility databáze 160 Ano, počínaje SQL Serverem 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ů.
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í úložiště dotazů.
Prokládání provádění Ano, počínaje úrovní kompatibility databáze 140 Ano, počínaje SQL Serverem 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 Serverem 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 Serverem 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 SQL Serverem 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 SQL Serverem 2022 (16.x)) s úrovní kompatibility databáze 140 Poskytuje nové funkce pro zachování zpětné vazby k paměti. Vyžaduje, aby úložiště dotazů bylo povoleno pro databázi a v READ_WRITE režimu.
Trvalost zpětné vazby CE Ano, počínaje úrovní kompatibility databáze 160 Ano, počínaje SQL Serverem 2022 (16.x)) s úrovní kompatibility databáze 160 Vyžaduje, aby úložiště dotazů bylo povoleno pro databázi a v READ_WRITE režimu.
Optimalizovaný plán vynucení úložištěm dotazů Yes Ano, počínaje SQL Serverem 2022 (16.x)). Snižuje náklady na kompilaci pro opakující se vynucené dotazy. Další informace naleznete v tématu Vynucení optimalizovaného plánu pomocí úložiště dotazů.
Vkládání skalárních UDF Ano, počínaje úrovní kompatibility databáze 150 Ano, počínaje SQL Serverem 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 Serverem 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 Serverem 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 ve službě 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ě.
odhad kardinality (CE) zpětné vazby 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ů.
stupeň paralelismu (DOP) Ano, počínaje úrovní kompatibility databáze 160 ve službě Azure SQL Managed Instance se zásadami aktualizací SQL Server 2025 nebo politika Always-up-to-dateaktualizace. Ne, pro zásady aktualizace SQL Serveru 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í úložiště dotazů.
Prokládání provádě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, aby úložiště dotazů bylo povoleno pro databázi a v READ_WRITE režimu.
Optimalizovaný plán vynucení úložištěm dotazů Ne Snižuje náklady na kompilaci pro opakující se vynucené dotazy. Další informace naleznete v tématu Vynucení optimalizovaného plánu pomocí úložiště dotazů.
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.
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.
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 Serveru 2019 (15.x) Description
Adaptivní spojení (režim batch) Ano, počínaje SQL Serverem 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 Serveru 2017 (14.x) Description
Adaptivní spojení (režim batch) Ano, počínaje SQL Serverem 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 úložiště dotazů

Několik funkcí inteligentního zpracování dotazů vyžaduje povolení úložiště dotazů , aby bylo možné využít uživatelskou databázi. Pokud chcete povolit úložiště dotazů, přečtěte si téma Povolení úložiště dotazů.

Funkce IQP Vyžaduje povolení úložiště dotazů a READ_WRITE
Adaptivní spojení (režim batch) No
Přibližný počet jedinečných No
Přibližný percentil No
Dávkový režim v úložišti řádků No
odhad kardinality (CE) zpětné vazby Yes
stupeň paralelismu (DOP) Yes
Prokládání provádění No
Zpětná vazba k udělení paměti (režim Batch) No
Zpětná vazba k příspěvku paměti (režim řádkového zpracování) No
Zpětná vazba k přidělení paměti (percentilový a persistentní režim) Yes
Optimalizovaný plán vynucení úložištěm dotazů Yes
Vkládání skalárních UDF No
Optimalizace plánu citlivého na parametry Ne, ale doporučeno
Odložená kompilace proměnné tabulky No