Megosztás a következőn keresztül:


Intelligens lekérdezésfeldolgozás SQL-adatbázisokban

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Az intelligens lekérdezésfeldolgozási (IQP) szolgáltatáscsalád olyan széles körű hatással rendelkező funkciókat tartalmaz, amelyek minimális implementálási erőfeszítéssel javítják a meglévő számítási feladatok teljesítményét. Az alábbi ábra az IQP-funkciók családját és az SQL Serverhez való első bevezetését mutatja be. Minden IQP-funkció elérhető a felügyelt Azure SQL-példányban és az Azure SQL Database-ben. Egyes funkciók az adatbázis kompatibilitási szintjétől függenek.

Az intelligens lekérdezésfeldolgozó család funkcióit és az SQL Serverben való bevezetését ábrázoló ábra.

Ebből a videóból áttekintheti az intelligens lekérdezésfeldolgozást:

 

A GitHub intelligens lekérdezésfeldolgozási (IQP) funkcióinak bemutatóiért és mintakódjaiért látogasson el https://aka.ms/IQPDemoside.

A számítási feladatokat automatikusan jogosulttá teheti az intelligens lekérdezések feldolgozására az adatbázis megfelelő kompatibilitási szintjének engedélyezésével. Ezt a Transact-SQL használatával állíthatja be. Például:

ALTER DATABASE [WideWorldImportersDW]
    SET COMPATIBILITY_LEVEL = 170;

Az alábbi táblázat részletesen ismerteti az összes intelligens lekérdezésfeldolgozási funkciót, valamint az adatbázis-kompatibilitási szinthez szükséges összes követelményt. Az IQP összes funkciójának részletes ismertetése, beleértve a kibocsátási megjegyzéseket és részletesebb leírásokat, tekintse meg részletesen az intelligens lekérdezésfeldolgozási funkciókat.

Az Azure SQL Database és az SQL Server 2025 IQP-funkciói

IQP-funkció Támogatott az Azure SQL Database-ben Az SQL Server 2025-ben támogatott (17.x) Description
Választható paraméterterv-optimalizálás (OPPO) No Igen, az SQL Server 2025 -től kezdve (17.x) a 170-es kompatibilitási szinttel A paraméterérzékeny tervoptimalizálás (PSPO) fejlesztésével bevezetett adaptív tervoptimalizálási (Multiplan) infrastruktúrát használja, amely egyetlen utasításból több csomagot hoz létre. A funkció futásidőben optimálisabb tervet választhat, attól függően, hogy egy paraméter az-e NULL OR NOT NULL, ami javítja az olyan lekérdezések teljesítményét, amelyek egyébként alapértelmezés szerint az optimálisnál alacsonyabb teljesítményt eredményeznek az ilyen lekérdezési minták esetében.
Számosságbecslési (CE) visszajelzés kifejezésekhez No Igen, az SQL Server 2025 -től kezdve (17.x) a 160-es kompatibilitási szinttel Kiterjeszti a CE-visszajelzést a lekérdezések ismétlődő kifejezéseire vonatkozó számosságbecslések javítására a korábbi végrehajtások megismerésével és a megfelelő CE-modell választásának automatikus alkalmazásával ezen kifejezések jövőbeli végrehajtására
OPTIMIZED_SP_EXECUTESQL Yes Igen, az SQL Server 2025-től kezdve (17.x) Hatékonyan csökkentheti az összeállítási viharok hatását. A fordítási viharhelyzet olyan állapot, amikor nagyszámú lekérdezés kerül egyidejűleg fordításra, ami teljesítményproblémákhoz és erőforrás-megosztási problémákhoz vezet. Engedélyezze ezt a funkciót, hogy az olyan meghívások sp_executesql viselkedjenek az objektumokkal, mint például a tárolt eljárások és eseményindítók fordítási nézőpontból.

Az Azure SQL Database és az SQL Server 2022 IQP-funkciói

IQP-funkció Támogatott az Azure SQL Database-ben Az SQL Server 2022 (16.x) és újabb verzióiban támogatott Description
Adaptív illesztések (Batch mód) Igen, a 140-es adatbázis-kompatibilitási szinttől kezdve Igen, az SQL Server 2017-től kezdve (14.x) az adatbázis kompatibilitási szintje 140 Az adaptív illesztések dinamikusan kiválasztanak egy illesztési típust futásidőben a tényleges bemeneti sorok alapján.
Hozzávetőleges darabszám különböző Yes Igen, az SQL Server 2019-től kezdve (15.x) Adjon hozzávetőleges COUNT DISTINCT a nagy teljesítményű és alacsony memóriaigényű big data-forgatókönyvekhez.
Hozzávetőleges percentilis Igen, a 110-es adatbázis-kompatibilitási szinttől kezdve Igen, az SQL Server 2022-től (16.x) kezdve a kompatibilitási szint 110 Gyorsan kiszámíthatja a percentiliseket egy nagy adatkészlethez elfogadható rangalapú hibahatárokkal, hogy gyors döntéseket hozzon hozzávetőleges percentilis összesítő függvények használatával.
Kötegelt mód soros tárolásban Igen, a 150-es adatbázis-kompatibilitási szinttől kezdve Igen, az SQL Server 2019-től kezdve (15.x) a 150-es kompatibilitási szinttel Kötegelt módot biztosít a processzorhoz kötött relációs DW számítási feladatokhoz oszlopcentrikus indexek megkövetelése nélkül.
számosságbecslési (CE) visszajelzési Igen, a 160-es adatbázis-kompatibilitási szinttől kezdve Igen, az SQL Server 2022-től (16.x) kezdve a kompatibilitási szint 160 Automatikusan módosítja az ismétlődő lekérdezések számossági becsléseit, hogy optimalizálja azokat a számítási feladatokat, amelyek nem hatékony CE-feltételezések rossz lekérdezési teljesítményt okoznak. A CE-visszajelzések azonosítják és használják a modell feltételezését, amely jobban megfelel egy adott lekérdezésnek és adatterjesztésnek a lekérdezés-végrehajtási terv minőségének javítása érdekében.
párhuzamosság (DOP) visszajelzési Igen, a 160-es adatbázis-kompatibilitási szinttől kezdve Igen, a 160-es adatbázis-kompatibilitási szinttől kezdve Automatikusan beállítja a párhuzamosság mértékét az ismétlődő lekérdezésekhez, hogy olyan számítási feladatokra optimalizáljon, amelyeknél a nem hatékony párhuzamosság teljesítményproblémákat okozhat. A Lekérdezéstár engedélyezését igényli.
Felváltva Végrehajtás Igen, a 140-es adatbázis-kompatibilitási szinttől kezdve Igen, az SQL Server 2017-től kezdve (14.x) az adatbázis kompatibilitási szintje 140 Az első fordítás során észlelt többutas táblaértékű függvény tényleges számosságát használja rögzített becslés helyett.
Memóriahasználati visszajelzés (Batch mód) Igen, a 140-es adatbázis-kompatibilitási szinttől kezdve Igen, az SQL Server 2017-től kezdve (14.x) az adatbázis kompatibilitási szintje 140 Ha egy köteg módú lekérdezés lemezre kiömlő műveletekkel rendelkezik, adjon hozzá több memóriát az egymást követő végrehajtásokhoz. Ha egy lekérdezés a számára lefoglalt memória több mint > 50%-át pazarolja, csökkentse a memória-hozzáférés méretét az egymást követő végrehajtások során.
Memóriahasználati visszajelzés (Sor mód) Igen, a 150-es adatbázis-kompatibilitási szinttől kezdve Igen, az SQL Server 2019-től kezdve (15.x) 150-es adatbázis-kompatibilitási szinttel Ha egy sor módú lekérdezés lemezre kiömlő műveleteket tartalmaz, adjon hozzá több memóriát az egymást követő végrehajtásokhoz. Ha egy lekérdezés a számára lefoglalt memória több mint > 50%-át pazarolja, csökkentse a memória-hozzáférés méretét az egymást követő végrehajtások során.
Memória-visszacsatolás (percentilis érték) Igen, minden adatbázisban engedélyezve van Igen, az SQL Server 2022 -től (16.x)) kezdve a 140-es adatbázis-kompatibilitási szinttel A memória-visszacsatolás meglévő korlátozásait nem tolakodó módon kezeli azáltal, hogy a korábbi lekérdezés-végrehajtást beépíti a visszajelzés finomításához.
Memória-visszajelzés megőrzése Igen, minden adatbázisban engedélyezve van Igen, az SQL Server 2022 -től (16.x)) kezdve a 140-es adatbázis-kompatibilitási szinttel Új funkciókat biztosít a memóriahasználati visszajelzések megőrzéséhez. Szükséges, hogy a 'Query Store' engedélyezve legyen az adatbázishoz READ_WRITE módban.
CE-visszajelzések megőrzése Igen, a 160-es adatbázis-kompatibilitási szinttől kezdve Igen, az SQL Server 2022 -től kezdve (16.x)) az adatbázis kompatibilitási szintje 160 Szükséges, hogy a 'Query Store' engedélyezve legyen az adatbázishoz READ_WRITE módban.
Optimalizált terv kényszerítése a Lekérdezéstár használatával Yes Igen, kezdve az SQL Server 2022-vel (16.x)). Csökkenti a kényszerített lekérdezések ismétlésével kapcsolatos fordítási többletterhelést. További információ: Optimalizált terv kényszerítése a Lekérdezéstár használatával.
Skaláris UDF beágyazása Igen, a 150-es adatbázis-kompatibilitási szinttől kezdve Igen, az SQL Server 2019-től kezdve (15.x) 150-es adatbázis-kompatibilitási szinttel A skaláris UDF-ek egyenértékű relációs kifejezésekké alakulnak át, amelyek "beágyazottak" a hívó lekérdezésbe, ami gyakran jelentős teljesítménynövekedést eredményez.
Paraméterérzékeny csomag optimalizálása Igen, a 160-es adatbázis-kompatibilitási szinttől kezdve Igen, az SQL Server 2022-től (16.x) kezdve az adatbázis kompatibilitási szintje 160 A paraméterérzékeny terv optimalizálása azt a forgatókönyvet kezeli, amikor egy paraméteres lekérdezés egyetlen gyorsítótárazott terve nem optimális minden lehetséges bejövő paraméterértékhez, például nem egységes adateloszlásokhoz.
Táblaváltozó késleltetett kompilálása Igen, a 150-es adatbázis-kompatibilitási szinttől kezdve Igen, az SQL Server 2019-től kezdve (15.x) 150-es adatbázis-kompatibilitási szinttel A táblaváltozó tényleges számosságát használja, amely az első fordítás során merült fel rögzített becslés helyett.

Azure SQL felügyelt példány IQP-funkciói

IQP-funkció Támogatott a felügyelt Azure SQL-példányban Description
Adaptív illesztések (Batch mód) Igen, a 140-es adatbázis-kompatibilitási szinttől kezdve Az adaptív illesztések dinamikusan kiválasztanak egy illesztési típust futásidőben a tényleges bemeneti sorok alapján.
Hozzávetőleges darabszám különböző Yes Adjon hozzávetőleges COUNT DISTINCT a nagy teljesítményű és alacsony memóriaigényű big data-forgatókönyvekhez.
Hozzávetőleges percentilis Igen, a 110-es adatbázis-kompatibilitási szinttől kezdve Gyorsan kiszámíthatja a percentiliseket egy nagy adatkészlethez elfogadható rangalapú hibahatárokkal, hogy gyors döntéseket hozzon hozzávetőleges percentilis összesítő függvények használatával.
Kötegelt mód soros tárolásban Igen, a 150-es adatbázis-kompatibilitási szinttől kezdve Kötegelt módot biztosít a processzorhoz kötött relációs DW számítási feladatokhoz oszlopcentrikus indexek megkövetelése nélkül.
számosságbecslési (CE) visszajelzési Igen, a 160-es adatbázis-kompatibilitási szinttől kezdve Automatikusan módosítja az ismétlődő lekérdezések számossági becsléseit, hogy optimalizálja azokat a számítási feladatokat, amelyek nem hatékony CE-feltételezések rossz lekérdezési teljesítményt okoznak. A CE-visszajelzések azonosítják és használják a modell feltételezését, amely jobban megfelel egy adott lekérdezésnek és adatterjesztésnek a lekérdezés-végrehajtási terv minőségének javítása érdekében.
párhuzamosság (DOP) visszajelzési Igen, kezdve a 160-as adatbázis-kompatibilitási szinttel a felügyelt Azure SQL-példányban az SQL Server 2025 vagy a mindig naprakész frissítési szabályzattal. Nem, az SQL Server 2022 frissítési szabályzatához. Automatikusan beállítja a párhuzamosság mértékét az ismétlődő lekérdezésekhez, hogy olyan számítási feladatokra optimalizáljon, amelyeknél a nem hatékony párhuzamosság teljesítményproblémákat okozhat. A Lekérdezéstár engedélyezését igényli.
Felváltva Végrehajtás Igen, a 140-es adatbázis-kompatibilitási szinttől kezdve Az első fordítás során észlelt többutas táblaértékű függvény tényleges számosságát használja rögzített becslés helyett.
Memóriahasználati visszajelzés (Batch mód) Igen, a 140-es adatbázis-kompatibilitási szinttől kezdve Ha egy köteg módú lekérdezés lemezre kiömlő műveletekkel rendelkezik, adjon hozzá több memóriát az egymást követő végrehajtásokhoz. Ha egy lekérdezés a számára lefoglalt memória több mint > 50%-át pazarolja, csökkentse a memória-hozzáférés méretét az egymást követő végrehajtások során.
Memóriahasználati visszajelzés (Sor mód) Igen, a 150-es adatbázis-kompatibilitási szinttől kezdve Ha egy sor módú lekérdezés lemezre kiömlő műveleteket tartalmaz, adjon hozzá több memóriát az egymást követő végrehajtásokhoz. Ha egy lekérdezés a számára lefoglalt memória több mint > 50%-át pazarolja, csökkentse a memória-hozzáférés méretét az egymást követő végrehajtások során.
Memória-visszacsatolás (percentilis érték) Igen, a 160-es adatbázis-kompatibilitási szinttől kezdve A memória-visszacsatolás meglévő korlátozásait nem tolakodó módon kezeli azáltal, hogy a korábbi lekérdezés-végrehajtást beépíti a visszajelzés finomításához.
Memória-visszaadás, CE és DOP-visszajelzések megőrzése Igen, a 160-es adatbázis-kompatibilitási szinttől kezdve Új funkciókat biztosít a memóriahasználati visszajelzések megőrzéséhez. A CE- és DOP-visszajelzések mindig megmaradnak. Szükséges, hogy a 'Query Store' engedélyezve legyen az adatbázishoz READ_WRITE módban.
Optimalizált terv kényszerítése a Lekérdezéstár használatával Nem Csökkenti a kényszerített lekérdezések ismétlésével kapcsolatos fordítási többletterhelést. További információ: Optimalizált terv kényszerítése a Lekérdezéstár használatával.
Skaláris UDF beágyazása Igen, a 150-es adatbázis-kompatibilitási szinttől kezdve A skaláris UDF-ek egyenértékű relációs kifejezésekké alakulnak át, amelyek "beágyazottak" a hívó lekérdezésbe, ami gyakran jelentős teljesítménynövekedést eredményez.
Paraméterérzékeny csomag optimalizálása Igen, a 160-es adatbázis-kompatibilitási szinttől kezdve A paraméterérzékenység-terv optimalizálása azt a forgatókönyvet kezeli, amikor egy paraméteres lekérdezés egyetlen gyorsítótárazott terve nem optimális minden lehetséges bejövő paraméterértékhez, például nem egységes adateloszlásokhoz.
Táblaváltozó késleltetett kompilálása Igen, a 150-es adatbázis-kompatibilitási szinttől kezdve A táblaváltozó tényleges számosságát használja, amely az első fordítás során merült fel rögzített becslés helyett.

Az SQL Server 2019 IQP funkcióinak jellemzői

IQP-funkció Az SQL Server 2019-ben támogatott (15.x) Description
Adaptív illesztések (Batch mód) Igen, az SQL Server 2017-től kezdve (14.x) az adatbázis kompatibilitási szintje 140 Az adaptív illesztések dinamikusan kiválasztanak egy illesztési típust futásidőben a tényleges bemeneti sorok alapján.
Hozzávetőleges darabszám különböző Yes Adjon hozzávetőleges COUNT DISTINCT a nagy teljesítményű és alacsony memóriaigényű big data-forgatókönyvekhez.
Kötegelt mód soros tárolásban Igen, a 150-es adatbázis-kompatibilitási szinttől kezdve Kötegelt módot biztosít a processzorhoz kötött relációs DW számítási feladatokhoz oszlopcentrikus indexek megkövetelése nélkül.
Felváltva Végrehajtás Igen, a 140-es adatbázis-kompatibilitási szinttől kezdve Használja az első fordítás során észlelt többutas táblaérték-függvény valós számosságát a fix becslés helyett.
Memóriahasználati visszajelzés (Batch mód) Igen, a 140-es adatbázis-kompatibilitási szinttől kezdve Ha egy köteg módú lekérdezés lemezre kiömlő műveletekkel rendelkezik, adjon hozzá több memóriát az egymást követő végrehajtásokhoz. Ha egy lekérdezés a számára lefoglalt memória több mint > 50%-át pazarolja, csökkentse a memória-hozzáférés méretét az egymást követő végrehajtások során.
Memóriahasználati visszajelzés (Sor mód) Igen, a 150-es adatbázis-kompatibilitási szinttől kezdve Ha egy sor módú lekérdezés lemezre kiömlő műveleteket tartalmaz, adjon hozzá több memóriát az egymást követő végrehajtásokhoz. Ha egy lekérdezés a számára lefoglalt memória több mint > 50%-át pazarolja, csökkentse a memória-hozzáférés méretét az egymást követő végrehajtások során.
Skaláris UDF beágyazása Igen, a 150-es adatbázis-kompatibilitási szinttől kezdve A skaláris UDF-ek egyenértékű relációs kifejezésekké alakulnak át, amelyek "beágyazottak" a hívó lekérdezésbe, ami gyakran jelentős teljesítménynövekedést eredményez.
Táblaváltozó késleltetett kompilálása Igen, a 150-es adatbázis-kompatibilitási szinttől kezdve Használja a táblaváltozó tényleges számosságát, amely az első fordításkor merült fel rögzített becslés helyett.

Az SQL Server 2017 IQP-funkciói

IQP-funkció Az SQL Server 2017-ben támogatott (14.x) Description
Adaptív illesztések (Batch mód) Igen, az SQL Server 2017-től kezdve (14.x) az adatbázis kompatibilitási szintje 140 Az adaptív illesztések dinamikusan kiválasztanak egy illesztési típust futásidőben a tényleges bemeneti sorok alapján.
Hozzávetőleges darabszám különböző Yes Adjon hozzávetőleges COUNT DISTINCT a nagy teljesítményű és alacsony memóriaigényű big data-forgatókönyvekhez.
Felváltva Végrehajtás Igen, a 140-es adatbázis-kompatibilitási szinttől kezdve Használja az első fordítás során észlelt többutas táblaérték-függvény valós számosságát a fix becslés helyett.
Memóriahasználati visszajelzés (Batch mód) Igen, a 140-es adatbázis-kompatibilitási szinttől kezdve Ha egy köteg módú lekérdezés lemezre kiömlő műveletekkel rendelkezik, adjon hozzá több memóriát az egymást követő végrehajtásokhoz. Ha egy lekérdezés a számára lefoglalt memória több mint > 50%-át pazarolja, csökkentse a memória-hozzáférés méretét az egymást követő végrehajtások során.

Lekérdezéstárra vonatkozó követelmény

Az intelligens lekérdezésfeldolgozási funkciók számos csomagjához engedélyezni kell a lekérdezéstárat , hogy kihasználhassa a felhasználói adatbázis előnyeit. A lekérdezéstár engedélyezéséről a Lekérdezéstár engedélyezése című témakörben olvashat.

IQP-funkció Lekérdezéstárnak engedélyezve kell lennie és READ_WRITE
Adaptív illesztések (Batch mód) No
Hozzávetőleges darabszám különböző No
Hozzávetőleges percentilis No
Kötegelt mód soros tárolásban No
számosságbecslési (CE) visszajelzési Yes
párhuzamosság (DOP) visszajelzési Yes
Felváltva Végrehajtás No
Memóriahasználati visszajelzés (Batch mód) No
Memóriahasználati visszajelzés (Sor mód) No
Memóriahasználati visszajelzés (Percentilis és perzisztencia üzemmód) Yes
Optimalizált terv kényszerítése a Lekérdezéstár használatával Yes
Skaláris UDF beágyazása No
Paraméterérzékeny csomag optimalizálása Nem, de ajánlott
Táblaváltozó késleltetett kompilálása No