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 Kezelt Példány
Ez a cikk azt ismerteti, hogyan zsugorodhat adatok vagy naplófájlok az SQL Serverben az SQL Server Management Studio vagy a Transact-SQL használatával.
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 elsődleges adatfájl nem tehető kisebbre az
modeladatbázis elsődleges fájljának méreténél.
Ajánlások
A zsugorítási művelet akkor a leghatékonyabb, ha egy olyan művelet után következik, amely nagy mennyiségű nem használt tárhelyet hoz létre, mint például egy nagy DELETE utasítás, egy tábla csonkolási művelet vagy egy drop table művelet.
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ázisfájlt, és azt észleli, 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ázisfájl ismételt zsugorítása felesleges művelet. Az adatbázisfájl növekedéséhez szükséges autogrow események rontják a teljesítményt.
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.
Ha nincs konkrét követelménye, ne állítsa be a AUTO_SHRINK adatbázis beállítását ON értékre.
Megjegyzések
Az adatbázisban a folyamatban lévő zsugorítási műveletek blokkolhatják a többi lekérdezést, és maguk is blokkolásra kerülhetnek a már folyamatban lévő lekérdezések által. Az SQL Server 2022-ben (16.x) bevezetett fájlzömörítési műveletek opcióval rendelkeznek WAIT_AT_LOW_PRIORITY. 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.
WAIT_AT_LOW_PRIORITY adatfájlokra (.mdf & .ndf) vonatkozik. Ez nem vonatkozik a tranzakciónapló-fájlokra. További információ: DBCC SHRINKFILE (Transact-SQL).
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.
Adatok vagy naplófájlok zsugorítása az SQL Server Management Studio (SSMS) használatával
Az Object Explorer-ben csatlakozzon az SQL Server adatbázismotor egy példányához, majd bontsa ki a példányt.
Nyissa meg a Adatbázisok listát, majd kattintson a jobb gombbal a zsugorítandó adatbázisra.
Mutasson Feladatok, mutasson Zsugorítás, majd válassza a Fájloklehetőséget.
Adatbázis
Megjeleníti a kijelölt adatbázis nevét.fájltípus
Válassza ki a fájltípust. Az elérhető lehetőségek: Adatfájlok és Naplófájlok. Az alapértelmezett beállítás Adat. Egy másik fájlcsoporttípus kiválasztása ennek megfelelően módosítja a többi mező kijelöléseit.Fájlcsoport
Válasszon ki egy fájlcsoportot a fenti fájltípushoz társított fájlcsoportok listájából,. Egy másik fájlcsoport kiválasztása ennek megfelelően módosítja a többi mező kijelöléseit.fájlnév
Válasszon ki egy fájlt a kijelölt fájlcsoport és fájltípus elérhető fájljainak listájából.hely
Megjeleníti az aktuálisan kijelölt fájl teljes elérési útját. Az elérési út nem szerkeszthető, de átmásolható a vágólapra.Jelenleg lefoglalt terület
Adatfájlok esetén az aktuális lefoglalt terület jelenik meg. Naplófájlok esetén aDBCC SQLPERF(LOGSPACE)kimenetéből kiszámított aktuális lefoglalt terület jelenik meg.Szabad terület
Adatfájlok esetén aDBCC SHOWFILESTATS(fileid)kimenetéből kiszámított szabad terület jelenik meg. Naplófájlok esetén aDBCC SQLPERF(LOGSPACE)kimenetéből kiszámított szabad terület jelenik meg.Nem használt terület felszabadítása
A fájlokban fel nem használt terület az operációs rendszer számára való felszabadítását és a fájl utolsó lefoglalt méretre zsugorítását eredményezi, így a fájl mérete adatok áthelyezése nélkül csökken. Nem történik kísérlet a sorok áthelyezésére nem kiosztott lapokra.Lapok átrendezése a fel nem használt terület felszabadítása előtt
Egyenértékű a célfájlméretet meghatározóDBCC SHRINKFILEvégrehajtásával. Ha ezt a beállítást választja, a felhasználónak meg kell adnia egy célfájlméretet a Zsugorítás fájlból mezőbe.Fájl zsugorítása
Megadja a zsugorítási művelet célfájlméretét. A méret nem lehet kisebb, mint az aktuális lefoglalt terület, vagy nagyobb, mint a fájlhoz lefoglalt teljes méret. Ha a minimumot vagy a maximumot meghaladó értéket ad meg, akkor a fókusz módosítása vagy az eszköztár gombjainak kijelölése után a minimális vagy a maximális értékre fog visszaállni.Üres fájl az adatok másik fájlba való migrálásával ugyanabban a fájlcsoportban
Az összes adat áttelepítése a megadott fájlból. Ezzel a beállítással a fájl elvethető azALTER DATABASEutasítással. Ez a beállítás egyenértékű aDBCC SHRINKFILEEMPTYFILEbeállítással való végrehajtásával.EMPTYFILEnem támogatott az Azure SQL Database-ben vagy az Azure SQL Database Hyperscale-ben.Válassza ki a fájltípust és a fájlnevet.
Ha szeretné, jelölje be a Nem használt terület felszabadítása jelölőnégyzetet.
Ha ezt a beállítást választja, a fájlban nem használt terület az operációs rendszer számára lesz felszabadítva, és a fájlt az utolsó lefoglalt méretre zsugorítja. Ez adat áthelyezése nélkül csökkenti a fájlméretet.
Ha szeretné, jelölje be a Fájlok átrendezése a fel nem használt terület felszabadítása előtt jelölőnégyzetet. Ha ez van kiválasztva, meg kell adni a fájl zsugorításának értékét. Alapértelmezés szerint a beállítás törlődik.
Ha ezt a beállítást választja, a fájlban lévő nem használt terület ki lesz szabadítva az operációs rendszer számára, és megpróbálja áthelyezni a sorokat a nem áthelyezett lapokra.
Ha szeretné, adja meg azt a maximális százalékos arányt, amennyi szabad terület maradjon az adatbázisfájlban, miután az adatbázis zsugorítva lett. A megengedett értékek 0 és 99 között vannak. Ez a beállítás csak akkor érhető el, ha fájlok átrendezése a fel nem használt hely felszabadítása előtt, engedélyezve van.
Ha szeretné, jelölje be a Üres fájlt, ha az adatokat az ugyanabban a fájlcsoportban lévő többi fájlba jelölőnégyzetbe migrálja.
Ha bejelöli ezt a beállítást, a megadott fájl összes adatát áthelyezi a fájlcsoport más fájljaiba. Az üres fájl ezután törölhető. Ez a beállítás ugyanaz, mint a
DBCC SHRINKFILEvégrehajtása az EMPTYFILE opcióval.Válassza OKlehetőséget.
Adatok vagy naplófájlok zsugorítása a Transact-SQL használatával
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 SHRINKFILE (Transact-SQL) használatával csökkenti az adatbázisban elnevezett
DataFile1UserDBadatfájl méretét 7 MB-ra.
USE UserDB;
GO
DBCC SHRINKFILE (DataFile1, 7);
GO
Kapcsolódó tartalom
- Az SQL Server automatikus növekedés és csökkenés beállításainak szempontjai
- Adatbázisfájlok és fájlcsoportok
- sys.databases (Transact-SQL)
- sys.database_files (Transact-SQL)
- FILE_ID (Transact-SQL)
- DBCC SHRINKDATABASE (Transact-SQL)
- DBCC ZSUGORÍTÁSFÁJL (Transact-SQL)
- Adatok vagy naplófájlok törlése adatbázis-
- Adatbázis- zsugorítása