Megosztás:


Memória-hozzáférési visszajelzés

A következőkre vonatkozik: Az SQL Server 2017 (14.x) és újabb verziói az Azure SQL DatabaseAzure SQL Managed InstanceSQL Database-adatbázist a Microsoft Fabricben

Előfordulhat, hogy egy lekérdezés túl nagy vagy túl kicsi memóriakiadással fut. Ha a memóriakiadás túl nagy, akkor gátoljuk a párhuzamosságot a kiszolgálón. Ha túl kicsi, előfordulhat, hogy kiömlünk a lemezre, ami költséges művelet. A memória visszacsatolás arra törekszik, hogy a korábbi végrehajtások memóriaigényét megjegyezze (percentilis visszacsatolás esetén több korábbi végrehajtás alapján). Ezen előzményes lekérdezési információk alapján a memóriahasználati visszajelzés ennek megfelelően módosítja a lekérdezéshez kapott támogatást a későbbi végrehajtásokhoz.

Ez a funkció három hullámban jelent meg. A batch módú memóriavisszajelzés, majd a sor módú memóriahasználat visszajelzése, valamint az SQL Server 2022 (16.x) a lekérdezéstár használatával a lemezen való adatmegőrzésre vonatkozó visszajelzést vezetett be, valamint egy továbbfejlesztett algoritmust, az úgynevezett percentilis-engedélyezést.

Megjegyzés:

További lekérdezési visszajelzési funkciókért tekintse meg a számosságbecslési (CE) visszajelzést és a párhuzamosság fokát (DOP) ismertető visszajelzést.

Batch módú memóriavisszajelzés

A következőkre vonatkozik: SQL Server 2017 (14.x) és újabb verziók, Azure SQL Database és Felügyelt Azure SQL-példány (140-es és újabb adatbázis-kompatibilitási szint).

A lekérdezés végrehajtási terve tartalmazza a végrehajtáshoz szükséges minimális memóriát, valamint az ideális memóriahasználati méretet, hogy az összes sor elférjen a memóriában. A teljesítmény akkor romlik, ha a memóriakiadás mérete helytelenül van méretezve. A túlzott vissza nem térítendő támogatás memóriapazarlást és kevesebb egyidejűséget eredményez. Az elégtelen memóriahasználat költséges kiömléseket okoz a lemezen. Az ismétlődő munkaterhelések kezelése révén a tételes üzemmódban lévő memóriavisszajelzés újraszámítja a lekérdezéshez szükséges tényleges memóriát, majd frissíti a gyorsítótárban lévő terv engedélyezési értékét. Azonos lekérdezési utasítás végrehajtásakor a lekérdezés a módosított memóriakiadási méretet használja, csökkentve az egyidejűséget befolyásoló túlzott memóriakiadásokat, és kijavítja az alábecsült memóriakijuttatásokat, amelyek költséges kiömlést okoznak a lemezen.

Az alábbi grafikon bemutatja a kötegelési mód adaptív memória-kiosztási visszajelzésének egyik példáját. A lekérdezés első végrehajtásához az időtartam 88 másodperc volt a magas kiömlések miatt:

DECLARE @EndTime AS DATETIME = '2016-09-22 00:00:00.000';
DECLARE @StartTime AS DATETIME = '2016-09-15 00:00:00.000';

SELECT TOP 10 hash_unique_bigint_id
FROM dbo.TelemetryDS
WHERE Timestamp BETWEEN @StartTime AND @EndTime
GROUP BY hash_unique_bigint_id
ORDER BY MAX(max_elapsed_time_microsec) DESC;

Képernyőkép a megadott és a kiömlött memória MB-jeiről, amelyek a magas kiömléseket jelzik.

Ha engedélyezve van a memória-visszacsatolás, a második végrehajtás esetében az időtartam 1 másodperc (88 másodperctől lefelé), a kiömlések teljesen törlődnek, és a támogatás magasabb:

A megadott és a kiömlött memória MB-jeinek grafikonja, amely azt jelzi, hogy nincs kiömlés.

Memóriahasználati visszajelzések méretezése

Túlzott memóriahasználati feltétel esetén, ha a megadott memória a tényleges felhasznált memória kétszeresénél nagyobb, a memóriahasználati visszajelzés újraszámítja a memóriahasználatot, és frissíti a gyorsítótárazott tervet. Az 1 MB-nál nem nagyobb memóriakihasználtságú csomagok nem lesznek újraszámolva a túlhasználat miatt.

A nem megfelelő méretű memóriahasználati feltétel esetén, amely a köteg módú operátorok lemezre történő kiömléséhez vezet, a memóriahasználat-visszacsatolás aktiválja a memóriakiadás újraszámítását. Kiömlési eseményekről a memóriatámogatási visszajelző rendszerbe történő riport készül, és a spilling_report_to_memory_grant_feedback kiterjesztett eseményen keresztül is megjeleníthetők. Ez az esemény visszaadja a csomópont azonosítóját a tervből és a csomópont kiömlött adatméretét.

A módosított memória-támogatás a tényleges (végrehajtás utáni) tervben jelenik meg a GrantedMemory tulajdonságon keresztül.

Ezt a tulajdonságot a grafikus bemutatóterv gyökér operátorában vagy a showplan XML-kimenetében láthatja:

<MemoryGrantInfo SerialRequiredMemory="1024" SerialDesiredMemory="10336" RequiredMemory="1024" DesiredMemory="10336" RequestedMemory="10336" GrantWaitTime="0" GrantedMemory="10336" MaxUsedMemory="9920" MaxQueryMemory="725864" />

Ha azt szeretné, hogy a számítási feladatok automatikusan jogosultak legyenek erre a fejlesztésre, engedélyezze az adatbázis 140-es kompatibilitási szintjét.

Példa:

ALTER DATABASE [WideWorldImportersDW]
SET COMPATIBILITY_LEVEL = 140;

Memória-visszacsatolás és paraméterérzékeny forgatókönyvek

A különböző paraméterértékek eltérő lekérdezési terveket is igényelhetnek az optimális állapot eléréséhez. Ez a lekérdezéstípus paraméterérzékenyként van definiálva.

A paraméterérzékeny tervek esetében a memóriahasználati visszajelzés letiltja magát egy lekérdezésben, ha instabil memóriaigényekkel rendelkezik. A memória-visszacsatolási funkció a lekérdezés többszöri futtatása után le van tiltva, és ez a memory_grant_feedback_loop_disabled kiterjesztett esemény monitorozásával figyelhető meg. Ezt a feltételt az SQL Server 2022 -ben (16.x) bevezetett memória-visszacsatolási visszajelzések megőrzésével és percentilis módjával enyhítik. A memóriahasználati visszajelzések adatmegőrzési funkciójának használatához engedélyezni kell a lekérdezéstárat az adatbázisban, és "írási" módban kell beállítani.

A paraméterszenzisről és a paraméterérzékenységről további információt a lekérdezésfeldolgozási architektúra útmutatójában talál.

Memória-hozzáférési engedély visszajelzési gyorsítótárazása

A visszajelzés a gyorsítótárban lévő tervben tárolható egyetlen végrehajtáshoz. Ez azonban az utasítás egymást követő végrehajtása, amely kihasználja a memória-visszacsatolási beállításokat. Ez a funkció az utasítások ismételt végrehajtására vonatkozik. A memória-hozzáférési visszajelzés csak a gyorsítótárazott tervet módosítja. Az SQL Server 2022 (16.x) előtt a módosítások nem lettek rögzítve a lekérdezéstárban.

A visszajelzések nem maradnak meg, ha a tervet kiürítik a gyorsítótárból. Feladatátvétel esetén a visszajelzések is elvesznek. Egy OPTION (RECOMPILE) utasítás használata új tervet hoz létre, és nem gyorsítótárazza azt. Mivel nem kerül gyorsítótárazásra, nem jön létre memóriahasználati visszajelzés, és nem tárolódik az adott összeállításhoz és futtatáshoz. Ha azonban egy olyan egyenértékű utasítást (azaz ugyanazzal a lekérdezési kivonattal), amely nem használta a OPTION (RECOMPILE), gyorsítótárba helyeztek, majd újra végrehajtottak, a második és az azt követő végrehajtások is kihasználhatják a memória-visszacsatolást.

Memória-felhasználási engedély visszajelzési tevékenység nyomon követése

Nyomon követheti a memória-visszacsatolási eseményeket az memory_grant_updated_by_feedback kiterjesztett esemény használatával. Ez az esemény nyomon követi az aktuális végrehajtási darabszám előzményeit, azt, hogy a terv hányszor frissült a memóriahasználati visszajelzések alapján, a módosítás előtti ideális további memóriakiosztást, valamint az ideális további memóriakiosztást, miután a memóriahasználati visszajelzés módosította a gyorsítótárazott tervet.

Memóriakezelési visszajelzés, erőforrás-vezérlő és lekérdezési javaslatok

A ténylegesen megadott memória tiszteletben tartja az erőforrás-vezérlő vagy a lekérdezési tipp által meghatározott lekérdezési memóriakorlátot.

A batch módú memóriavisszajelzés letiltása a kompatibilitási szint módosítása nélkül

A memória-visszacsatolás letiltható az adatbázis vagy az utasítás hatókörében, miközben továbbra is fenntartja a 140-es és annál magasabb adatbázis-kompatibilitási szintet. Ha le szeretné tiltani a kötegelt módú memóriahozzárendelési visszajelzést az adatbázisból származó összes lekérdezés-végrehajtás esetében, hajtsa végre az alábbi Transact-SQL utasításokat az alkalmazott adatbázis kontextusában.

  • Az SQL Server 2017-ben (14.x):

    ALTER DATABASE SCOPED CONFIGURATION
    SET DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK = ON;
    
  • Az SQL Server 2019 (15.x) és újabb verzióiban, valamint az Azure SQL Database-ben:

    ALTER DATABASE SCOPED CONFIGURATION
    SET BATCH_MODE_MEMORY_GRANT_FEEDBACK = OFF;
    

Ha engedélyezve van, ez a beállítás engedélyezettként jelenik meg a sys.database_scoped_configurations.

Ha újra engedélyezni szeretné a kötegelt módú memóriavisszajelzést az adatbázisból származó összes lekérdezés-végrehajtáshoz, hajtsa végre a Transact-SQL utasításokat az alkalmazandó adatbázis kontextusában.

  • Az SQL Server 2017-ben (14.x):

    ALTER DATABASE SCOPED CONFIGURATION
    SET DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK = OFF;
    
  • Az SQL Server 2019 (15.x) és újabb verzióiban, valamint az Azure SQL Database-ben:

    ALTER DATABASE SCOPED CONFIGURATION
    SET BATCH_MODE_MEMORY_GRANT_FEEDBACK = ON;
    

Letilthatja a kötegelt műveleti mód memória-hozzáférési visszajelzéseit egy adott lekérdezéshez úgy, hogy a DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK-t USE HINT lekérdezési tippként választja. Például:

SELECT *
FROM Person.Address
WHERE City = 'SEATTLE'
      AND PostalCode = 98104
OPTION (USE HINT('DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK'));

A USE HINT lekérdezési tippek elsőbbséget élveznek az adatbázis hatókörébe tartozó konfigurációval vagy nyomkövetési jelző beállítással szemben.

A sormód memóriahasználata visszajelzést ad

A következőkre vonatkozik: SQL Server 2019 (15.x) és újabb verziók, Azure SQL Database és Felügyelt Azure SQL-példány (150-es vagy újabb adatbázis-kompatibilitási szint).

A sor módú memóriavisszajelzés a köteg mód memóriavisszaadási funkcióján kibővül a köteg- és sormódú operátorok memóriakiadási méretének módosításával.

Ha engedélyezni szeretné a sor módú memóriahasználattal kapcsolatos visszajelzést az Azure SQL Database-ben, engedélyezze a lekérdezés végrehajtásakor csatlakoztatott adatbázis 150-es vagy újabb adatbázis-kompatibilitási szintjét.

Példa:

ALTER DATABASE [<database name>]
SET COMPATIBILITY_LEVEL = 150;

A kötegelt módú memória-hozzárendelési visszajelzéshez hasonlóan a sormódú memória-hozzárendelési visszajelzési tevékenység is megfigyelhető az memory_grant_updated_by_feedback XEvent használatával. Két új lekérdezés-végrehajtási terv attribútumait is bevezetünk, hogy jobban látható legyen a memória-kiosztás visszajelzési művelet aktuális állapota mind a sor-, mind a kötegmódban.

A memóriahasználati visszajelzéshez nincs szükség a Lekérdezéstárra, azonban az SQL Server 2022 (16.x) rendszerben bevezetett adatmegőrzési fejlesztésekhez engedélyezni kell a lekérdezéstárat az adatbázishoz és "írási" állapotban. További információért a perzisztenciáról lásd a cikk későbbi részében a Percentilis és perzisztencia mód memória kiosztási visszajelzést.

A sor módú memóriahasználati visszajelzés tevékenysége a memory_grant_updated_by_feedback kiterjesztett eseményen keresztül látható.

A sor módú memóriahasználati visszajelzéstől kezdve két új lekérdezésterv-attribútum jelenik meg a tényleges végrehajtás utáni tervekhez: IsMemoryGrantFeedbackAdjusted és LastRequestedMemorya lekérdezésterv XML-eleméhez MemoryGrantInfo hozzáadva.

  • Az LastRequestedMemory attribútum a megadott memóriát kilobájtban (KB) jeleníti meg az előző lekérdezés végrehajtásából.
  • A IsMemoryGrantFeedbackAdjusted attribútum lehetővé teszi, hogy ellenőrizze az utasításhoz tartozó memória-hozzáférési visszajelzések állapotát egy tényleges lekérdezés-végrehajtási tervben.

Az attribútumban megjelenő értékek a következők:

IsMemoryGrantFeedbackAdjusted érték Leírás
Nem: Első végrehajtás A memória-hozzáférési visszajelzés nem módosítja a memóriát az első fordítás és a hozzá tartozó végrehajtás során.
Nem: Pontos megadás Abban az esetben, ha nincs kimenet a lemezre, és az utasítás a megadott memória legalább 50%-ját használja, akkor a memória-hozzáférési visszajelzés nem kerül aktiválásra.
Nem: A visszajelzés le van tiltva Ha a memória megadására vonatkozó visszajelzés folyamatosan aktiválódik, és ingadozik a memórianövelési és a memóriacsökkentési műveletek között, az adatbázismotor letiltja a memória megadására vonatkozó visszajelzést az utasításhoz.
Igen: Helyesbítés A memóriahasználati visszajelzést alkalmazták, és a következő végrehajtáshoz további módosításokat hajthatnak végre.
Igen: Percentilis-beállítás A memória-kiosztási visszajelzés a percentilis kiosztási algoritmussal kerül alkalmazásra, amely több történeti adatot vizsgál, mint a legutóbbi végrehajtás.
Igen: Stabil A memóriahasználati visszajelzést alkalmazták, és a memória állapota stabil, ami azt jelenti, hogy az előző végrehajtáshoz utoljára megadott érték az, amit az aktuális végrehajtáshoz adtak.

Percentilis és perzisztencia módú memória visszajelzést ad

A következővonatkozik: SQL Server 2022 (16.x) és újabb verziók, Azure SQL Database és felügyelt Azure SQL-példány.

Ez a funkció az SQL Server 2022-ben (16.x) lett bevezetve, de ez a teljesítménybeli fejlesztés elérhető a 140-es adatbáziskompatibilitási szint vagy annál magasabb szint esetében (amelyet az SQL Server 2017-ben (14.x) vezettek be), illetve QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n 140-es vagy annál magasabb szintű feltétel használatakor a lekérdezésekre, és ha a Lekérdezéstár engedélyezve van az adatbázishoz, és "olvasási-írási" állapotban van.

  • A percentilis memóriahasználatra vonatkozó visszajelzés alapértelmezés szerint engedélyezve van az SQL Server 2022-ben (16.x), de nincs hatása, ha a Lekérdezéstár nincs engedélyezve, vagy ha a Lekérdezéstár nem "olvasási" állapotban van.

  • A memória-lekérés, CE és DOP-visszajelzések megőrzése alapértelmezés szerint be van kapcsolva az SQL Server 2022-ben (16.x), de nincs hatása, ha a Query Store nincs engedélyezve, vagy ha a Query Store nincs "olvasási és írási" állapotban.

  • A memóriahozzáadási visszajelzések percentilise és megőrzése elérhető az Azure SQL Database-ben, és alapértelmezés szerint engedélyezve van az összes meglévő és új adatbázison.

  • A memória-hozzáférési visszajelzés percentilise és megőrzése jelenleg nem érhető el Azure SQL Managed Instance-ban.

Javasoljuk, hogy mielőtt a feature engedélyezésre kerül a adatbázisához, rendelkezzen a munkaterhelés teljesítmény alapvonalával. Az alapszámok segítenek megállapítani, hogy a szolgáltatás által kívánt előnyt kapja-e.

A memória-visszacsatolás (MGF) egy meglévő funkció, amely a korábbi teljesítmény alapján módosítja a lekérdezéshez lefoglalt memória méretét. Ennek a projektnek a kezdeti fázisai azonban csak a gyorsítótárban tárolták a memória-visszaadás módosítását a tervvel együtt – ha egy tervet kiürítenek a gyorsítótárból, a visszajelzési folyamatnak újra kell kezdődnie, ami gyenge teljesítményt eredményez a lekérdezések kiürítése utáni első néhány alkalommal. Az új megoldás az, hogy a lekérdezéstár többi lekérdezési információjával együtt megőrzi a támogatási adatokat, hogy az előnyök a gyorsítótár-kiürítések során is megmaradjanak. A memória biztosítja a visszajelzések megőrzését, és a percentilis a memória meglévő korlátozásait nem tolakodó módon adja vissza.

Emellett a támogatás méretének módosítása csak a legutóbb használt támogatásnál volt figyelembe véve. Ha tehát egy paraméteres lekérdezéshez vagy számítási feladathoz az egyes végrehajtásokhoz jelentősen eltérő memóriakiadási méretek szükségesek, a legutóbbi engedélyezési adatok pontatlanok lehetnek. Előfordulhat, hogy a lekérdezés végrehajtása eltér a tényleges igényektől. A memóriahasználati visszajelzés ebben a forgatókönyvben nem hasznos a teljesítmény szempontjából, mivel mindig a legutóbb használt engedélyezési érték alapján állítjuk be a memóriát. A következő képen a memóriahasználati visszajelzések percentilis és adatmegőrzési mód nélküli viselkedése látható.

Diagram, amely bemutatja a kiosztott és a ténylegesen szükséges memória viselkedését a memóriahasználati visszajelzésben percentilis és perzisztencia mód nélküli memória kiosztási visszajelzés esetén.

Mint látható, ebben a szokatlan, de lehetséges lekérdezési viselkedésben a tényleges szükséges és a megadott memóriamennyiségek közötti oszcilláció felesleges és nem elegendő memóriát eredményez, ha maga a lekérdezés végrehajtása a memória mennyisége tekintetében vált. Ebben a forgatókönyvben a memóriahasználati visszajelzés letiltja magát, felismerve, hogy több kárt okoz, mint jót.

A lekérdezés legutóbbi előzményeihez tartozó percentilisalapú számítással a legutóbbi végrehajtás helyett simíthatjuk az engedélyezési méretértékeket a korábbi végrehajtási használati előzmények alapján, és megpróbálhatunk optimalizálni a kiömlések minimalizálására. Ugyanaz a váltakozó terhelés például a következő memóriaengedélyezési viselkedést mutatja:

A diagram egy gráfot mutat, amely a juttatott és ténylegesen szükséges memória viselkedését ábrázolja a percentilis és kitartó módú memória támogatási visszajelzéssel.

A lekérdezésoptimalizáló a gyorsítótárazott terv végrehajtásai során, a lekérdezéstárban tárolt adatok felhasználásával, korábbi memóriahozzáférési igények magas percentilisét használja a memóriaadottság méreteinek kiszámításához. A memóriahasználati beállításokat végrehajtó percentilisbeállítás a végrehajtások legutóbbi előzményei alapján történik. Idővel a megadott memóriahasználat csökkenti a kiömléseket és a memóriapazarlást.

A megőrzés a DOP-visszajelzésekre és a CE-visszajelzésekre is vonatkozik.

Memóriahasználati visszajelzési funkciók engedélyezése és letiltása

A kompatibilitási szint módosítása nélkül tiltsa le a sor módú memóriahasználat visszajelzését

A sor módú memória-visszacsatolás letiltható az adatbázis vagy az utasítás hatókörében, miközben továbbra is fenntartja a 150-es és annál magasabb adatbázis-kompatibilitási szintet. Ha le szeretné tiltani a sor módú memória-hozzárendelési visszajelzést az adatbázisból származó összes lekérdezés végrehajtásánál, hajtsa végre a Transact-SQL utasításokat az alkalmazandó adatbázis környezetében.

ALTER DATABASE SCOPED CONFIGURATION
SET ROW_MODE_MEMORY_GRANT_FEEDBACK = OFF;

Ha újra engedélyezni szeretné a sor módú memóriavisszajelzést az adatbázisból származó összes lekérdezésvégrehajtáshoz, hajtsa végre a következőket a vonatkozó adatbázis kontextusában:

ALTER DATABASE SCOPED CONFIGURATION
SET ROW_MODE_MEMORY_GRANT_FEEDBACK = ON;

Letilthatja a sor módú memóriavisszajelzéseket egy adott lekérdezéshez, ha DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK tippet használja. Például:

SELECT *
FROM Person.Address
WHERE City = 'SEATTLE'
      AND PostalCode = 98104
OPTION (USE HINT('DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK'));

A USE HINT lekérdezési tippek elsőbbséget élveznek az adatbázis hatókörébe tartozó konfigurációval vagy nyomkövetési jelző beállítással szemben.

Engedélyezze a memóriahozzáférés visszajelzésének állandóságát és percentilis értékelését.

Az Azure SQL Database-ben és az SQL Server 2022-ben (16.x) alapértelmezés szerint engedélyezve van a perzisztencia és a percentilis visszajelzés.

Használja a 140-es vagy újabb adatbáziskompatibilitási szintet ahhoz az adatbázishoz, amelyhez a lekérdezés végrehajtásakor csatlakozik. Ezt az ALTER DATABASE-en keresztül módosíthatja:

ALTER DATABASE <database_name>
SET COMPATIBILITY LEVEL = 140; -- or a higher value

A lekérdezéstárat minden olyan adatbázishoz engedélyezni kell, ahol a szolgáltatás adatmegőrzési részét használják.

Percentilis letiltása

Ha le szeretné tiltani a memória-visszacsatolási percentilist az adatbázisból származó összes lekérdezésvégrehajtáshoz, hajtsa végre a következőket az alkalmazandó adatbázis kontextusában:

ALTER DATABASE SCOPED CONFIGURATION
SET MEMORY_GRANT_FEEDBACK_PERCENTILE_GRANT = OFF;

Az alapértelmezett beállítás a MEMORY_GRANT_FEEDBACK_PERCENTILE_GRANT a ON.

Az adatmegőrzés letiltása

Ha le szeretné tiltani a memóriát, visszajelzési adatmegőrzést biztosít az adatbázisból származó összes lekérdezés-végrehajtáshoz.

Hajtsa végre a következőket az alkalmazandó adatbázis kontextusában:

ALTER DATABASE SCOPED CONFIGURATION
SET MEMORY_GRANT_FEEDBACK_PERSISTENCE = OFF;

Ha letiltja a memóriahasználatot a visszajelzések megőrzéséhez, az eltávolítja a meglévő összegyűjtött visszajelzéseket is.

Az alapértelmezett beállítás a MEMORY_GRANT_FEEDBACK_PERSISTENCE a ON.

A memóriaengedély-visszajelzés megfontolásai

Az aktuális beállításokat sys.database_scoped_configurations lekérdezésével tekintheti meg.

Megjegyzés:

Ez a funkció nem működik, ha mind a BATCH_MODE_MEMORY_GRANT_FEEDBACK és a ROW_MODE_MEMORY_GRANT_FEEDBACKOFF be van állítva.

Mivel a visszajelzési adatok továbbra is megmaradnak a Lekérdezéstárban, a lekérdezéstár használati követelményei némileg megnőnek.

A percentilisalapú memória-juttatás inkább a kiömlések csökkentésére hajlik. Mivel ez már nem az utolsó végrehajtáson alapul, hanem a korábbi végrehajtások megfigyelésén, ez növelheti a memóriahasználatot az oszcilláló munkaterhelések esetében, és széles eltérést mutathat a memóriaengedély követelmények tekintetében a végrehajtások között.

Az SQL Server 2022-től (16.x) kezdődően, amikor engedélyezett a másodlagos replikák lekérdezéstára, a memória-kiosztási visszajelzés replikaérzékeny a rendelkezésre állási csoportok másodlagos replikáihoz. A memóriagránt visszajelzés eltérően alkalmazza a visszajelzéseket az elsődleges replikán és a másodlagos replikán. A memóriahasználati visszajelzések azonban nem maradnak meg a másodlagos replikákon, és feladatátvételkor a rendszer a régi elsődleges replikától kapott visszajelzést alkalmazza az új elsődleges replikára. A másodlagos replikára az elsődleges replika létrehozásakor alkalmazott visszajelzések elvesznek. A Lekérdezéstár az SQL Server 2025 -től (17.x) kezdődő másodlagos rendelkezésre állási csoport replikáin érhető el. További információkért lásd a Lekérdezéstárat az olvasható másodtárakról.