Adatbázis-tároló optimalizálása

Befejeződött

Az adatbázis-tárolás optimalizálása érdekében érdemes megfontolni az arányos kitöltést és a tempdb-konfigurációt.

Az I/O teljesítményének ismertetése

Az I/O-teljesítmény kritikus fontosságú lehet egy alkalmazás-adatbázis esetében. Az Azure SQL nem teszi lehetővé a fizikai fájlelhelyezést, de vannak olyan módszerek, amelyekkel biztosítható a szükséges I/O-teljesítmény elérése.

A másodpercenkénti bemenet/kimenet (IOPS) fontos lehet az alkalmazás számára. Győződjön meg arról, hogy a megfelelő szolgáltatási szintet és virtuális magokat választotta az IOPS-igényeihez. Ismerje meg, hogyan mérheti meg a helyszíni lekérdezések IOPS-ját, ha az Azure-ba migrál. Ha vannak az IOPS-re vonatkozó korlátozások, hosszú I/O várakozási időt tapasztalhat. A virtuális magok vásárlási modelljében felskálázhatja a virtuális magokat, vagy áttérhet üzletileg kritikus vagy rugalmas skálázásra, ha nem rendelkezik elegendő IOPS-sal. Éles számítási feladatok esetén a DTU használata esetén javasoljuk, hogy lépjen a Prémium szintre.

Az I/O-késés az I/O-teljesítmény egy másik különösen fontos összetevője. Az Azure SQL Database kisebb I/O-késéséhez fontolja meg az Üzletileg kritikus vagy a Rugalmas skálázás szint használatát. A felügyelt SQL-példány kisebb I/O-késéséhez váltson az Üzletileg kritikus szintre, vagy növelje az adatbázis fájljainak méretet vagy számát. A tranzakciónapló késésének javítása többértékű tranzakciók használatát igényelheti.

Fájlok és fájlcsoportok

Az SQL Server-szakemberek gyakran használnak fájlokat és fájlcsoportokat az I/O-teljesítmény fizikaifájl-elhelyezéssel történő növeléséhez. Az Azure SQL nem engedélyezi a felhasználók számára, hogy fájlokat helyezzenek el bizonyos lemezrendszereken. Az Azure SQL azonban erőforrás-kötelezettségvállalásokkal rendelkezik az I/O teljesítményére vonatkozóan a díjak, az IOPS és a késések tekintetében. Ezért előnyös lehet kizárni a felhasználót a fizikaifájl-elhelyezésből.

Az Azure SQL Database csak egyetlen adatbázisfájllal rendelkezik (a rugalmas skálázás általában többel), a maximális méretet pedig az Azure-felületeken keresztül lehet konfigurálni. Nem lehet több fájlt létrehozni.

A felügyelt Azure SQL-példány támogatja az adatbázisfájlok hozzáadását és a méretek konfigurálását, de a fájlok fizikai elhelyezését nem. A felügyelt SQL-példány fájljainak és fájlméreteinek számával javíthatja az I/O teljesítményét. A kezelhetőség javítása érdekében továbbá a felhasználó által megadott fájlcsoportok a felügyelt SQL-példány esetében támogatottak.

Arányos kitöltés leírása

Ha egy két adatfájlt tartalmazó SQL Server-adatbázisba 1 gigabájtnyi adatot szúr be, az egyes fájlok körülbelül 512 megabájttal növekedhetnek. Ez azonban nem mindig így van. Az SQL Server az egyes fájlok mérete alapján osztja el az adatokat. Ha például mindkét adatfájl 2 gigabájtos, akkor az adatok egyenletesen oszlanak el. Ha azonban az egyik fájl 10 gigabájt, a másik pedig 1 gigabájt, akkor körülbelül 900 MB kerül a nagyobb fájlba, és 100 MB a kisebbbe. Ez a viselkedés minden adatbázisban gyakori, de az írásigényes tempdbben az egyenetlen írási minta szűk keresztmetszetet okozhat a legnagyobb fájlban, mivel több írást kezel.

Tempdb konfigurálása az SQL Serveren

Az SQL Server a telepítés során észleli a rendelkezésre álló CPU-k számát, és konfigurálja a megfelelő számú fájlt, akár nyolcat is, akár méretezéssel is. Emellett az 1117 és 1118 nyomkövetési jelzők viselkedése integrálva van az adatbázismotorba, de csak a tempdb. A tempdb-nehéz számítási feladatok esetében előnyös lehet a tempdb-fájlok számának növelése nyolcnál több, a gépen lévő processzorok számának megfelelő értékekkel.

Az SQL Serverhez és az Azure SQL-hez is ugyanúgy használható tempdb . Vegye figyelembe azonban, hogy a konfigurálási tempdb képesség eltérő, beleértve a fájlok elhelyezését, a fájlok számát és méretét, valamint tempdb a konfigurációs beállításokat.

Az SQL Server tempdb-t használ a felhasználó által definiált ideiglenes táblákon kívül különböző feladatokhoz is. Olyan munkatáblákhoz használatos, amelyek többek között köztes lekérdezési eredményeket, rendezési műveleteket és verziótárat tárolnak a sorverziókhoz. A kiterjedt kihasználtság miatt kulcsfontosságú, hogy a tempdb a lehető legkisebb késésű tárolóra kerüljön, és megfelelően konfigurálja az adatfájljait.

A rendszer mindig automatikusan tárolja az adatbázisfájlokat tempdb a helyi SSD-meghajtókon, így az I/O-teljesítmény nem lehet probléma.

Az SQL Server-szakemberek gyakran több adatbázisfájlt használnak a táblák foglalásainak particionálásához tempdb . Az Azure SQL Database esetében a fájlok száma a virtuális magok számával van skálázva (például két virtuális mag négy fájllal egyenlő), legfeljebb 16 fájllal. A fájlok száma nem konfigurálható a T-SQL tempdbhasználatával, de az üzembe helyezési beállítás módosításával konfigurálhatja. A maximális méret tempdb a virtuális magok számánként van skálázva. A virtuális magok számától függetlenül a felügyelt SQL-példányhoz 12 fájl tartozik.

Az adatbázis-beállítás MIXED_PAGE_ALLOCATIONKI értékre van állítva, és AUTOGROW_ALL_FILESBE értékre van állítva. Ezt nem lehet konfigurálni, de az SQL Serverhez hasonlóan ezek az ajánlott alapértelmezett értékek.

Az tempdb SQL Server 2019-ben bevezetett metaadat-optimalizálási funkció, amely enyhítheti a nehéz reteszes versengést, jelenleg nem érhető el az Azure SQL Database-ben vagy a felügyelt Azure SQL-példányban.

Adatbázis konfigurálása

Gyakran konfigurál egy adatbázist a T-SQL ALTER DATABASE és ALTER DATABASE SCOPED CONFIGURATION az utasítások használatával. Számos teljesítménnyel kapcsolatos konfigurációs beállítás érhető el az Azure SQL-hez. Az SQL Server, az Azure SQL Database és a felügyelt Azure SQL-példány közötti különbségekről tekintse meg az ALTER DATABASE és az ALTER DATABASE HATÓKÖRŰ KONFIGURÁCIÓ T-SQL-referenciáját.

Az Azure SQL Database-ben az alapértelmezett helyreállítási modell a teljes helyreállítás, amely biztosítja, hogy az adatbázis megfeleljen az Azure szolgáltatásiszint-szerződéseinek (SLA-k). Ez azt jelenti, hogy a tömeges műveletek minimális naplózása nem támogatott, kivéve tempdba minimális naplózást.

MAXDOP-konfigurálás

A maximális párhuzamossági fok (MAXDOP) hatással lehet az egyes lekérdezések teljesítményére. Az SQL Server és az Azure SQL ugyanúgy kezeli a kezelőt MAXDOP . Ha MAXDOP magasabb értékre van állítva, lekérdezésenként több párhuzamos szálat használ a rendszer, ami felgyorsíthatja a lekérdezések végrehajtását. Ez a megnövekedett párhuzamosság azonban további memóriaerőforrásokat igényel, ami memóriaterheléshez vezethet, és hatással lehet a tárolási teljesítményre. Ha például sorcsoportokat tömörít egy oszloptárba, a párhuzamosság több memóriát igényel, ami memóriaterhelést és sorcsoport-vágást eredményezhet.

Ezzel szemben a MAXDOP alacsonyabb értékre állítása csökkentheti a memóriaterhelést, így a tárolórendszer hatékonyabban teljesíthet. Ez a korlátozott memóriaerőforrásokkal vagy magas tárolási igényekkel rendelkező környezetekben fontos. A MAXDOP gondos konfigurálásával kiegyensúlyozza a lekérdezési teljesítményt és a tárolási hatékonyságot, biztosítva a cpu- és a tárolási erőforrások optimális használatát.

Az Azure SQL-ben hasonlóképpen lehet konfigurálni a MAXDOP-t, mint az SQL Serverben, az alábbi módszerekkel:

  • ALTER DATABASE SCOPED CONFIGURATION a konfigurálás MAXDOP az Azure SQL-ben támogatott.
  • A felügyelt SQL-példányok esetében támogatott a "maximális párhuzamossági fok" tárolt eljárása sp_configure .
  • MAXDOP a lekérdezési tippek teljes mértékben támogatottak.
  • MAXDOP A felügyelt SQL-példányok esetében a Resource Governor használatával történő konfigurálás támogatott.