Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: SQL Server 2019 (15.x) és újabb verziók
A hibrid pufferkészlet lehetővé teszi, hogy a pufferkészlet-objektumok az állandó memória (PMEM) eszközein található adatbázisfájlok adatlapjaira hivatkozjanak, ahelyett, hogy le kellene kérniük az adatlapok másolatát a lemezről, és gyorsítótárazniuk kell őket a változó DRAM-ban. Ez a funkció az SQL Server 2019-ben (15.x) lett bevezetve, és tovább bővül az SQL Server 2022 -ben (16.x).
Az állandó memória (PMEM)-eszközök bájtcímezhetők, és ha közvetlen hozzáférésű (DAX) állandó memóriaérzékeny fájlrendszert (például XFS, EXT4 vagy NTFS) használnak, a fájlrendszer fájljai az operációs rendszer szokásos fájlrendszer API-jaival érhetők el. Másik lehetőségként az SQL Server betöltési és tárolási műveleteket hajthat végre a PMEM-eszközön található fájlok memóriatérképén. Ez lehetővé teszi, hogy a PMEM-et támogató alkalmazások, például az SQL Server a hagyományos tárolóverem bejárása nélkül férhessenek hozzá az eszközön található fájlokhoz.
A hibrid pufferkészlet ezt a képességet használja a memórialeképezett fájlok terhelési és tárolási műveleteinek végrehajtására, a PMEM-eszköz gyorsítótárként való használatára a pufferkészlethez és az adatbázisfájlok tárolási helyéhez. Ez azt az egyedi helyzetet hozza létre, amelyben a logikai olvasás és a fizikai olvasás lényegében ugyanaz a művelet lesz. Az állandó memóriaeszközök a memóriabuszon keresztül is elérhetők, csakúgy, mint a normál, illékony DRAM.
Alapértelmezés szerint csak a tiszta adatoldalak lesznek gyorsítótárazva a hibrid pufferkészlet PMEM-modulján. Ahhoz, hogy egy lap módosuljon és piszkosként legyen megjelölve, át kell másolni a PMEM-eszközről egy DRAM pufferkészletbe, módosítani kell, majd végül a módosított lap másolatát vissza kell írni a DRAM-ból a PMEM modulba, ahol újra tisztaként lehet megjelölni. Ez a folyamat olyan normál háttérműveletekkel történik, mint az ellenőrzőpont vagy a lusta író, mintha a PMEM-modul standard blokkeszköz lenne.
A hibrid pufferkészlet funkció Windows és Linux rendszeren is elérhető. A PMEM-eszköznek olyan fájlrendszert kell használnia, amely támogatja a DAX-ot (DirectAccess). Az XFS, az EXT4 és az NTFS fájlrendszerek mindegyike támogatja a DAX-bővítményeket, amelyek közvetlenül a felhasználói területről biztosítják a fájlrendszer elérését. Az SQL Server észleli, hogy az adatbázis-adatfájlok egy megfelelően konfigurált PMEM-lemezeszközön találhatók-e, és automatikusan elvégzik az adatbázisfájlok szükséges memórialeképezését az adatbázis indításakor, vagy amikor egy adatbázist csatolnak, visszaállítanak vagy létrehoznak.
További információkért lásd:
- Konfigurálja az állandó memóriát (PMEM) windowsos SQL Serverhez (SQL Server 2022 (16.x) és újabb verziókhoz.
- Konfigurálja az állandó memóriát (PMEM) linuxos SQL Serverhez.
Hibrid pufferkészlet engedélyezése
Az SQL Server 2019 (15.x) dinamikus adatnyelvet (DDL) vezet be a hibrid pufferkészlet vezérléséhez.
Az alábbi példa engedélyezi a hibrid pufferkészletet az SQL Server egy példányához:
ALTER SERVER CONFIGURATION SET MEMORY_OPTIMIZED HYBRID_BUFFER_POOL = ON;
Alapértelmezés szerint a hibrid pufferkészlet le van tiltva a példány hatókörében. A beállítás módosításának érvénybe lépéséhez újra kell indítani az SQL Server-példányt. Újraindításra van szükség a megfelelő kivonatlapok kiosztásának megkönnyítéséhez, hogy figyelembe vegyék a teljes PMEM-kapacitást a kiszolgálón.
Az alábbi példa egy adott adatbázis hibrid pufferkészletét teszi lehetővé.
ALTER DATABASE <databaseName> SET MEMORY_OPTIMIZED = ON;
Alapértelmezés szerint a hibrid pufferkészlet engedélyezve van az adatbázis hatókörében.
Hibrid pufferkészlet letiltása
Az alábbi példa letiltja a hibrid pufferkészletet a példány szintjén:
ALTER SERVER CONFIGURATION SET MEMORY_OPTIMIZED HYBRID_BUFFER_POOL = OFF;
A hibrid pufferkészlet alapértelmezés szerint le van tiltva a példány szintjén. A módosítás érvénybe lépéséhez a példányt újra kell indítani. Az újraindítás biztosítja, hogy elegendő kivonatlap legyen lefoglalva a pufferkészlethez, mivel a kiszolgálón lévő PMEM-kapacitást most el kell számolni.
Az alábbi példa letiltja egy adott adatbázis hibrid pufferkészletét.
ALTER DATABASE <databaseName> SET MEMORY_OPTIMIZED = OFF;
Alapértelmezés szerint a hibrid pufferkészlet engedélyezve van az adatbázis hatókörében, és le van tiltva a kiszolgáló hatókörében.
Hibrid pufferkészlet konfigurációjának megtekintése
Futtatási idő értékének megjelenítése
Az alábbi példa a példány aktuális hibrid pufferkészlet-konfigurációs állapotát adja vissza.
SELECT * FROM sys.server_memory_optimized_hybrid_buffer_pool_configuration;
Az alábbi példa az adatbázisokat és a hibrid pufferkészlet (is_memory_optimized_enabled) adatbázisszint-beállítását sorolja fel.
A PMEM modult a DAX engedélyezése nélkül is csatlakoztathatja vagy formázhatja, és normál blokkeszközként is kezelheti (azaz i/O-t hajthat végre a kernelen keresztül). Ha így van konfigurálva, az SQL Server egyetlen PMEM-modult sem használhat bájtcímezhető műveletek végrehajtására (vagyis minden hívás kernel-szóköz illesztőprogramokat fog használni).
SELECT name, is_memory_optimized_enabled
FROM sys.databases;
Hibrid pufferkészlet közvetlen írással
A közvetlen írási viselkedésű hibrid pufferkészlet csökkenti a PMEM-eszközökön található módosított adatokon vagy indexlapokon végrehajtandó parancsok számát memcpy . Ezt úgy teszi, hogy a tartósan megmaradó naplópuffert használja a lap módosítására anélkül, hogy azt a DRAM-pufferkészletek egyikébe kellene másolnia. Ehelyett a PMEM-eszközökön található adatbázisfájlok lapjait közvetlenül módosítják anélkül, hogy a DRAM-pufferkészletben gyorsítótáraznak, majd később aszinkron módon kiüríteni a lemezt. Ez a viselkedés továbbra is megfelel az előre írt naplózás (WAL) szemantikájának, mivel a tartós tranzakciónapló-pufferben lévő (napló)rekordokat tartós adathordozóra írták vagy edzették. Jelentős teljesítménynövekedést figyeltek meg a hibrid pufferkészletet használó tranzakciós számítási feladatok esetében, és így együtt őrizték meg a naplópuffert.
A közvetlen írási mód engedélyezéséhez engedélyezze a hibrid pufferkészletet és a naplópuffert egy adatbázishoz, és engedélyezze az indítási nyomkövetési jelző 809-et.
Ajánlott eljárások a hibrid pufferkészlethez
Ha a PMEM-eszközt Windows rendszeren formázza, használja az NTFS-hez elérhető legnagyobb foglalási egységméretet (Windows Server 2019 és újabb verziókban 2 MB), és győződjön meg arról, hogy az eszköz DAX (Direct Access) formátumban lett formázva.
Engedélyezze a Lapok zárolása a memóriaszabályzatban Windows rendszeren.
A fájlméreteknek 2 MB többszörösnek kell lenniük (a modulo 2 MB-nak nullával kell egyenlőnek lennie).
Ha a hibrid pufferkészlet kiszolgálói hatókörű beállítása le van tiltva, a szolgáltatást egyetlen felhasználói adatbázis sem fogja használni.
Ha engedélyezve van a hibrid pufferkészlet kiszolgálóhatókörű beállítása, az adatbázis-hatókörű beállítással letilthatja a funkciót az egyes felhasználói adatbázisok esetében.
Az SQL Server 2019 (15.x) CU 3 (lásd KB4538118) esetében alapértelmezés szerint engedélyezve van az olvasási gyorsítótárazás, amely a hibrid pufferkészletben nyomon követi a legmelegebb lapokat, majd automatikusan előlépteti a DRAM pufferkészletet a teljesítmény javítása érdekében.
Az SQL Server 2022 (16.x) CU 1 esetében a közvetlen írás az alapértelmezett viselkedés, ha a hibrid pufferkészletet a rendszer a fenntartott naplópufferrel kombinálja. Ennek szinte az összes számítási feladat teljesítményén javítania kell, de mindig van esély a regresszióra, és a CU-t alaposan tesztelni kell az alkalmazás előtt. Ha a viselkedésváltozás miatt regressziót tapasztal, az indítási nyomkövetési jelző 898-at használva visszatérhet az előző viselkedéshez.
Az SQL Server 2022 (16.x) CU 1-től kezdve a 809-et az SQL Server az indításkor figyelmen kívül hagyja. A 809 nyomkövetési jelző és a 898 nyomkövetési jelző csak a Windowsra vonatkozik, linuxos SQL Serverre nem. A nyomkövetési jelzőket csak akkor szabad használni, ha erre egy hitelesített Microsoft Server-szakember utasítja.