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


Adatbázis zsugorítása

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Ez a cikk azt ismerteti, hogyan zsugorodhat egy adatbázis az SQL Serveren az Object Explorerrel az SQL Server Management Studióban vagy a Transact-SQL-ben.

Az adatfájlok zsugorítása helyrehozhatja a helyet azáltal, hogy a fájl végéről a fájl elejéhez közelebb lévő üres helyre helyezi át az adatoldalakat. Ha a fájl végén elegendő szabad terület jön létre, a fájl végén lévő adatoldalak felszabadíthatók, és visszaadhatók a fájlrendszerbe.

Figyelmeztetés

  • A fájl zsugorításához áthelyezett adatok a fájl bármely elérhető helyére szétszórhatók. Ez indextöredezettséget okoz, és lelassíthatja az index egy tartományában kereső lekérdezések teljesítményét. A töredezettség megszüntetéséhez fontolja meg a fájl indexeinek újraépítését a zsugorítás után.
  • A zsugorítási műveletek nem tekinthetők rendszeres karbantartási műveletnek. A rendszeres, ismétlődő üzleti műveletek miatt növekvő adat- és naplófájlok nem igényelnek zsugorítási műveleteket.

Korlátozások

  • Az adatbázis nem lehet kisebb az adatbázis minimális méreténél. A minimális méret az adatbázis eredeti létrehozásakor megadott méret, vagy az utolsó explicit méret egy fájlméret-módosító művelettel, például DBCC SHRINKFILE. Ha például eredetileg 10 MB méretű adatbázist hoztak létre, és 100 MB-ra nőtt, az adatbázis legkisebb mérete 10 MB lehet, még akkor is, ha az adatbázis összes adatát törölték.

  • Az adatbázis biztonsági mentése közben nem zsugoríthatja az adatbázist. Ezzel szemben nem készíthet biztonsági másolatot az adatbázisokról, amíg az adatbázis zsugorítása folyamatban van.

Ajánlások

  • A szabad (nem foglalt) terület aktuális mennyiségének megtekintése az adatbázisban. További információ: Adatok és naplótéradatok megjelenítése egy adatbázishoz

  • Az adatbázis zsugorításakor vegye figyelembe az alábbi információkat:

    • A zsugorítási művelet akkor a leghatékonyabb, ha egy olyan művelet után hajtjuk végre, amely nagy mennyiségű nem használt tárterületet hoz létre, mint például egy nagy DELETE művelet, egy tábla csonkolása vagy egy tábla eldobása.

    • A legtöbb adatbázishoz szükség van némi szabad területre a napi rendszeres műveletekhez. Ha ismétlődően zsugorít egy adatbázist, és azt tapasztalja, hogy az adatbázis mérete ismét nő, ez azt jelzi, hogy a normál műveletekhez szabad terület szükséges. Ezekben az esetekben az adatbázis ismételt zsugorítása felesleges művelet. Az adatbázisfájl(ok) növekedéséhez szükséges autogrow események akadályozzák a teljesítményt.

    • A zsugorítási művelet nem őrzi meg az adatbázis indexeinek töredezettségi állapotát, és általában bizonyos mértékig növeli a töredezettséget. Ez egy másik ok arra, hogy ne zsugorodjon újra az adatbázis.

    • Ha nincs konkrét követelménye, ne válassza az AUTO_SHRINK adatbázis opciót ON.

Engedélyek

A sysadmin rögzített kiszolgálói szerepkörben vagy a db_owner rögzített adatbázis-szerepkörben való tagság szükséges.

Megjegyzések

Az adatbázisban zajló zsugorítási műveletek megakadályozhatják más lekérdezések futását, és a már folyamatban lévő lekérdezések is megakadályozhatják a zsugorítási műveleteket. Az SQL Server 2022 -ben (16.x) bevezetett zsugorított adatbázis-műveleteknek van WAIT_AT_LOW_PRIORITY lehetősége. Ez a funkció egy új további lehetőség DBCC SHRINKDATABASE és DBCC SHRINKFILEszámára. Ha egy új zsugorítási művelet WAIT_AT_LOW_PRIORITY módban nem tudja beszerezni a szükséges zárolásokat egy már folyamatban lévő, hosszú ideig futó lekérdezés miatt, a zsugorítási művelet egy perc elteltével időtúllépést eredményez, és csendesen kilép, megakadályozva a többi lekérdezés blokkolását. További információért lásd: DBCC SHRINKDATABASE.

Az Azure SQL Database-hez kapcsolódó fájlkezelési és zsugorítási műveletekről további információt az Az Azure SQL Databaseadatbázisainak fájlterületének kezelése című témakörben talál.

Az SQL Server Management Studio használata

A következőkre vonatkozik: SQL Server, Felügyelt Azure SQL-példány

Adatbázis zsugorítása

  1. Az Object Explorer-ben csatlakozzon az SQL Server adatbázismotor egy példányához, majd bontsa ki a példányt.

  2. Bontsa ki adatbázisok, majd kattintson a jobb gombbal a zsugorítandó adatbázisra.

  3. Mutasson a(z) Feladatokelemre, mutasson a(z) Zsugorításelemre, majd válassza a(z) Adatbázislehetőséget.

    • Adatbázis

      Megjeleníti a kijelölt adatbázis nevét.

    • Aktuális lefoglalt terület

      Megjeleníti a kijelölt adatbázis teljes felhasznált és nem használt területét.

    • Szabad terület

      Megjeleníti a kijelölt adatbázis naplóiban és adatfájljaiban található szabad terület összegét.

    • Fájlok átrendezése a nem használt hely felszabadítása előtt

      Ha ezt a beállítást választja, az egyenértékű a célszázad beállítás megadásának végrehajtásával DBCC SHRINKDATABASE . A beállítás törlése egyenértékű a(z) DBCC SHRINKDATABASE végrehajtásával a(z) TRUNCATEONLY opcióval. Alapértelmezés szerint ez a beállítás nincs kiválasztva a párbeszédpanel megnyitásakor. Ha ez a beállítás van kiválasztva, a felhasználónak meg kell adnia egy célszázalékos beállítást.

    • Fájlok maximális szabad területe a zsugorítása után

      Adja meg az adatbázis-fájlokban az adatbázis zsugorítása után hagyandó szabad terület maximális százalékát. A megengedett értékek 0 és 99 között vannak.

  4. Válassza OKlehetőséget.

Használja a Transact-SQL-t

Adatbázis zsugorítása

  1. Csatlakozzon az adatbázismotorhoz.

  2. A Standard sávon válassza Új lekérdezéslehetőséget.

  3. Másolja és illessze be a következő példát a lekérdezési ablakba, és válassza a Végrehajtáslehetőséget. Ez a példa a DBCC SHRINKDATABASE (Transact-SQL) használatával csökkenti az adatbázisban lévő UserDB adatok és naplófájlok méretét, és lehetővé teszi 10 a százalékos szabad helyet az adatbázisban.

DBCC SHRINKDATABASE (UserDB, 10);
GO

Adatbázis zsugorítása után

A fájl zsugorításához áthelyezett adatok a fájl bármely elérhető helyére szétszórhatók. Ez indextöredezettséget okoz, és lelassíthatja az index egy tartományában kereső lekérdezések teljesítményét. A töredezettség megszüntetéséhez fontolja meg a fájl indexeinek újraépítését a zsugorítás után. További információért lásd: Index újraépítése.