Zmenšení databáze
platí pro:SQL Server
Azure SQL Database
azure SQL Managed Instance
Tento článek popisuje, jak zmenšit databázi na SQL Serveru pomocí Průzkumníka objektů v aplikaci SQL Server Management Studio nebo Transact-SQL.
Zmenšení datových souborů obnoví místo přesunutím stránek dat z konce souboru do neobsazeného prostoru blíže k přední části souboru. Když se na konci souboru vytvoří dostatek volného místa, datové stránky na konci souboru se dají uvolnit a vrátit do systému souborů.
Omezení a restrikce
Databázi nelze zmenšit, než je minimální velikost databáze. Minimální velikost je velikost zadaná při původním vytvoření databáze nebo poslední explicitní nastavení pomocí operace změny velikosti souboru, například
DBCC SHRINKFILE
. Pokud byla například databáze původně vytvořená s velikostí 10 MB a vzrostla na 100 MB, nejmenší velikost databáze by mohla být zmenšena na 10 MB, i když byla odstraněna všechna data v databázi.Databázi nemůžete zmenšit, když se databáze zálohuje. Naopak nemůžete zálohovat databázi, zatímco probíhá operace zmenšení databáze.
Doporučení
Pokud chcete zobrazit aktuální množství volného (nepřiděleného) místa v databázi. Další informace najdete v tématu Zobrazení dat a místa protokolu pro databázi
Při plánování zmenšení databáze zvažte následující informace:
Operace zmenšení je nejúčinnější po operaci, která vytvoří velké množství nevyužitého prostoru úložiště, jako je například velký příkaz DELETE, zkrácení tabulky nebo operace odstranění tabulky.
Většina databází vyžaduje, aby bylo k dispozici nějaké volné místo pro běžné každodenní operace. Pokud databázi zmenšíte opakovaně a všimněte si, že se velikost databáze znovu zvětší, znamená to, že pro běžné operace se vyžaduje volné místo. V těchto případech je opakované zmenšení databáze zbytečnou operací. Události automatického zvětšování potřebné k růstu databázových souborů brání výkonu.
Operace zmenšení nezachovává stav fragmentace indexů v databázi a obecně zvyšuje fragmentaci do určité míry. To je další důvod, proč databázi opakovaně nezmenšovat.
Pokud nemáte konkrétní požadavek, nenastavujte možnost AUTO_SHRINK databáze na hodnotu ZAPNUTO.
oprávnění
Vyžaduje členství v pevné systémové roli sysadmin nebo v pevné databázové roli db_owner.
Poznámky
Probíhající operace zmenšení můžou blokovat další dotazy v databázi a mohou být blokovány probíhajícími dotazy. Představeno v SQL Server 2022 (16.x), operace zmenšení databáze mají možnost WAIT_AT_LOW_PRIORITY. Tato funkce je novou další možností pro DBCC SHRINKDATABASE
a DBCC SHRINKFILE
. Pokud nová operace zmenšení v režimu WAIT_AT_LOW_PRIORITY nemůže získat potřebné zámky kvůli dlouhotrvajícímu dotazu, který už probíhá, operace zmenšení nakonec vyprší po jedné minutě a tiše ukončí, což brání zablokování jiných dotazů. Další informace naleznete v tématu DBCC SHRINKDATABASE.
Informace o operacích správy a zmenšení souborů specifických pro Azure SQL Database najdete v tématu Správa prostoru souborů pro databáze ve službě Azure SQL Database.
Použití aplikace SQL Server Management Studio
platí pro: SQL Server, azure SQL Managed Instance
Zmenšení databáze
V Průzkumníku objektůse připojte k instanci databázového stroje SQL Serveru a poté ji rozbalte.
Rozbalte Databáze, poté klikněte pravým tlačítkem myši na databázi, kterou chcete zmenšit.
Přejděte na Úkoly, přejděte na Zmenšita vyberte Databáze .
Databáze
Zobrazí název vybrané databáze.
Aktuální přidělený prostor
Zobrazí celkový využitý a nevyužitý prostor pro vybranou databázi.
Volné místo
Zobrazí součet volného místa v protokolu a datových souborech vybrané databáze.
Přeskládat soubory před uvolněním nevyužitého místa
Výběr této možnosti je ekvivalentem spuštění DBCC SHRINKDATABASE určující cílovou procentuální možnost. Zrušení zaškrtnutí této možnosti odpovídá spuštění DBCC SHRINKDATABASE s možností TRUNCATEONLY. Ve výchozím nastavení není tato možnost při otevření dialogového okna vybraná. Pokud je tato možnost vybrána, musí uživatel zadat cílovou procentuální možnost.
Maximální volné místo v souborech po zmenšení
Zadejte maximální procento volného místa, které se má nechat v souborech databáze po zmenšení databáze. Přípustné hodnoty jsou v rozmezí od 0 do 99.
Vyberte OK.
Použijte Transact-SQL
Zmenšení databáze
Připojte se k databázovému stroji.
Na panelu Standard vyberte Nový dotaz.
Zkopírujte a vložte následující příklad do okna dotazu a vyberte Spustit. Tento příklad používá DBCC SHRINKDATABASE ke zmenšení velikosti datových a protokolových souborů v databázi
UserDB
a k zajištění10
procent volného místa v této databázi.
DBCC SHRINKDATABASE (UserDB, 10);
GO
Po zmenšení databáze
Data, která jsou přesunuta za účelem zmenšení souboru, mohou být rozptýlena na jakékoliv dostupné místo v souboru. To způsobuje fragmentaci indexu a může zpomalit výkon dotazů, které prohledávají rozsah indexu. Pokud chcete fragmentaci odstranit, zvažte opětovné sestavení indexů v souboru po zmenšení. Další informace naleznete v tématu Opětovné sestavení indexu.
Související obsah
- Zmenšení databáze tempdb
- Úvahy o nastavení automatického zvětšování a automatického zmenšování v SQL Serveru
- Databázové soubory a skupiny souborů
- sys.databases (Transact-SQL)
- sys.database_files (Transact-SQL)
- DBCC SHRINKDATABASE (Transact-SQL)
- DBCC SHRINKFILE (Transact-SQL)
- Odstranění dat nebo souborů protokolu z databáze
- Zmenšení souboru
- Správa prostoru souborů pro databáze ve službě Azure SQL Database