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
Azure SQL Database
Azure 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ótON
.
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 SHRINKFILE
szá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
Az Object Explorer-ben csatlakozzon az SQL Server adatbázismotor egy példányához, majd bontsa ki a példányt.
Bontsa ki adatbázisok, majd kattintson a jobb gombbal a zsugorítandó adatbázisra.
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.
Válassza OKlehetőséget.
Használja a Transact-SQL-t
Adatbázis zsugorítása
Csatlakozzon az adatbázismotorhoz.
A Standard sávon válassza Új lekérdezéslehetőséget.
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é teszi10
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.
Kapcsolódó tartalom
- A tempdb-adatbázis zsugorítása
- Az SQL Server automatikus növekedés és automatikus csökkentés beállításainak szempontjai
- adatbázisfájlok és fájlcsoportok
- sys.databases (Transact-SQL)
- sys.database_files (Transact-SQL)
- DBCC SHRINKDATABASE (Transact-SQL)
- DBCC SHRINKFILE (Transact-SQL)
- Adatok vagy naplófájlok törlése adatbázis-
- Fájl zsugorítása
- Adatbázisok fájlterületének kezelése az Azure SQL Database