gebeurtenis
31 mrt, 23 - 2 apr, 23
De grootste SQL-, Fabric- en Power BI-leerevenement. 31 maart – 2 april. Gebruik code FABINSIDER om $ 400 te besparen.
Zorg dat u zich vandaag nog registreertDeze browser wordt niet meer ondersteund.
Upgrade naar Microsoft Edge om te profiteren van de nieuwste functies, beveiligingsupdates en technische ondersteuning.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
In dit artikel wordt beschreven hoe u een gegevens- of logboekbestand in SQL Server verkleint met behulp van SQL Server Management Studio of Transact-SQL.
Als u gegevensbestanden verkleint, wordt ruimte hersteld door pagina's met gegevens van het einde van het bestand te verplaatsen naar onbezette ruimte dichter bij de voorkant van het bestand. Wanneer er aan het einde van het bestand voldoende vrije ruimte wordt gecreëerd, kunnen gegevenspagina's aan het einde van het bestand gedealloceerd en teruggegeven worden aan het bestandssysteem.
model
-database.Een verkleiningsbewerking is het meest effectief na een bewerking waarmee een grote hoeveelheid ongebruikte opslagruimte wordt gemaakt, zoals een grote DELETE-instructie, afkappen van een tabel of een drop table-bewerking.
De meeste databases vereisen dat er vrije ruimte beschikbaar is voor normale dagelijkse bewerkingen. Als u een databasebestand herhaaldelijk verkleint en merkt dat de databasegrootte opnieuw toeneemt, geeft dit aan dat de vrije ruimte vereist is voor normale bewerkingen. In deze gevallen is het herhaaldelijk verkleinen van het databasebestand een verspilde bewerking. Autogrow-gebeurtenissen die nodig zijn om het databasebestand te vergroten, belemmeren de prestaties.
Gegevens die worden verplaatst om een bestand te verkleinen, kunnen worden verspreid naar elke beschikbare locatie in het bestand. Dit veroorzaakt indexfragmentatie en kan de prestaties van query's die een bereik van de index doorzoeken, vertragen. Als u de fragmentatie wilt elimineren, kunt u overwegen om de indexen in het bestand opnieuw op te bouwen na het verkleinen.
Tenzij u een specifieke vereiste hebt, stelt u de optie AUTO_SHRINK database niet in op AAN.
Verkleiningsbewerkingen die worden uitgevoerd, kunnen andere query's in de database blokkeren en kunnen worden geblokkeerd door query's die al worden uitgevoerd. In SQL Server 2022 (16.x) geïntroduceerd, hebben verkleiningsbestandsbewerkingen een WAIT_AT_LOW_PRIORITY optie. Deze functie is een nieuwe extra optie voor DBCC SHRINKDATABASE
en DBCC SHRINKFILE
. Als een nieuwe verkleiningsbewerking in WAIT_AT_LOW_PRIORITY modus de benodigde vergrendelingen niet kan verkrijgen vanwege een langlopende query die al wordt uitgevoerd, treedt er na één minuut een time-out op voor de verkleiningsbewerking, waardoor andere query's niet kunnen worden geblokkeerd. WAIT_AT_LOW_PRIORITY is van toepassing op gegevensbestanden (.mdf & .ndf). Dit geldt niet voor transactielogboekbestanden. Zie DBCC SHRINKFILEvoor meer informatie.
Vereist lidmaatschap van de sysadmin vaste serverfunctie of de db_owner vaste databaserol.
Maak in Objectverkennerverbinding met een exemplaar van de SQL Server Database Engine en vouw dat exemplaar vervolgens uit.
Vouw Databases uit en klik met de rechtermuisknop op de database die u wilt verkleinen.
Wijs takenaan, wijs verkleinen aan en selecteer bestanden.
Database
Geeft de naam van de geselecteerde database weer.
bestandstype
Selecteer het bestandstype voor het bestand. De beschikbare opties zijn Data- en Log-bestanden. De standaardselectie is Gegevens. Als u een ander bestandstype selecteert, worden de selecties in de andere velden dienovereenkomstig gewijzigd.
bestandsgroep
Selecteer een bestandsgroep in de lijst met bestandsgroepen die zijn gekoppeld aan de geselecteerde bestandstype hierboven. Als u een andere bestandsgroep selecteert, worden de selecties in de andere velden dienovereenkomstig gewijzigd.
bestandsnaam
Selecteer een bestand in de lijst met beschikbare bestanden van de geselecteerde bestandsgroep en bestandstype.
locatie
Hiermee wordt het volledige pad naar het geselecteerde bestand weergegeven. Het pad kan niet worden bewerkt, maar wel naar het klembord worden gekopieerd.
momenteel toegewezen ruimte
Voor gegevensbestanden wordt de huidige toegewezen ruimte weergegeven. Voor logboekbestanden geeft u de huidige toegewezen ruimte weer die wordt berekend op basis van de uitvoer van DBCC SQLPERF(LOGSPACE)
.
Beschikbare vrije ruimte
Voor gegevensbestanden geeft u de huidige beschikbare vrije ruimte weer die wordt berekend op basis van de uitvoer van DBCC SHOWFILESTATS(fileid)
. Voor logboekbestanden geeft u de huidige beschikbare vrije ruimte weer die wordt berekend op basis van de uitvoer van DBCC SQLPERF(LOGSPACE)
.
ongebruikte ruimte vrijgeven
Ervoor zorgen dat ongebruikte ruimte in de bestanden wordt vrijgegeven aan het besturingssysteem en het bestand verkleint tot de laatst toegewezen gebieden, waardoor de bestandsgrootte wordt verkleind zonder gegevens te verplaatsen. Er wordt geen poging gedaan om rijen te verplaatsen naar niet-toegewezen pagina's.
pagina's opnieuw orden voordat ongebruikte ruimte wordt vrijgegeven
Komt overeen met het uitvoeren van DBCC SHRINKFILE
waarbij de grootte van het doelbestand wordt opgegeven. Wanneer deze optie is geselecteerd, moet de gebruiker een doelbestandsgrootte opgeven in het vak Bestand verkleinen naar.
bestand verkleinen tot
Hiermee geeft u de doelbestandsgrootte voor de verkleiningsbewerking. De grootte mag niet kleiner zijn dan de huidige toegewezen ruimte of meer dan de totale omvang die aan het bestand is toegewezen. Als u een waarde buiten het minimum of het maximum invoert, wordt het minimum of het maximum teruggezet zodra de focus is gewijzigd of wanneer een van de knoppen op de werkbalk is geselecteerd.
Leeg bestand door de gegevens naar andere bestanden in dezelfde bestandsgroep te migreren
Migreer alle gegevens uit het opgegeven bestand. Met deze optie kan het bestand worden verwijderd met behulp van de instructie ALTER DATABASE. Deze optie is gelijk aan het uitvoeren van DBCC SHRINKFILE
met de optie EMPTYFILE
.
EMPTYFILE
wordt niet ondersteund in Azure SQL Database of Azure SQL Database Hyperscale.
Selecteer het bestandstype en de bestandsnaam.
Schakel desgewenst het selectievakje Ongebruikte ruimte vrijgeven in.
Als u deze optie selecteert, wordt ongebruikte ruimte in het bestand vrijgegeven aan het besturingssysteem en wordt het bestand verkleind tot de laatst toegewezen gebieden. Dit vermindert de bestandsgrootte zonder gegevens te verplaatsen.
Schakel indien gewenst het selectievakje Bestanden herschikken voordat ongebruikte ruimte wordt vrijgegeven in. Als dit is geselecteerd, moet de waarde voor het verkleinen van bestand worden opgegeven. De optie is standaard uitgeschakeld.
Als u deze optie selecteert, wordt ongebruikte ruimte in het bestand vrijgegeven aan het besturingssysteem en wordt geprobeerd rijen te verplaatsen naar niet-toegewezen pagina's.
Voer desgewenst het maximumpercentage vrije ruimte in dat in het databasebestand moet worden achtergelaten nadat de database is verkleind. Toegestane waarden liggen tussen 0 en 99. Deze optie is alleen beschikbaar wanneer bestanden opnieuw orden voordat ongebruikte ruimte wordt vrijgegeven is ingeschakeld.
Schakel desgewenst het selectievakje Leeg bestand in door de gegevens naar andere bestanden in dezelfde bestandsgroep te migreren selectievakje.
Als u deze optie selecteert, worden alle gegevens uit het opgegeven bestand verplaatst naar andere bestanden in de bestandsgroep. Het lege bestand kan vervolgens worden verwijderd. Deze optie is hetzelfde als het uitvoeren van DBCC SHRINKFILE
met de optie EMPTYFILE.
Selecteer OK-.
Maak verbinding met de database-engine.
In de standaardbalk, selecteer Nieuwe query.
Kopieer en plak het volgende voorbeeld in het queryvenster en selecteer uitvoeren. In dit voorbeeld wordt DBCC SHRINKFILE- gebruikt om de grootte van een gegevensbestand met de naam DataFile1
in de UserDB
database te verkleinen tot 7 MB.
USE UserDB;
GO
DBCC SHRINKFILE (DataFile1, 7);
GO
gebeurtenis
31 mrt, 23 - 2 apr, 23
De grootste SQL-, Fabric- en Power BI-leerevenement. 31 maart – 2 april. Gebruik code FABINSIDER om $ 400 te besparen.
Zorg dat u zich vandaag nog registreertTraining
Module
SQL Server-resources configureren voor optimale prestaties - Training
SQL Server-resources configureren voor optimale prestaties
Certificering
Microsoft Certified: Azure Database Administrator Associate - Certifications
Beheer een SQL Server-databaseinfrastructuur voor cloud-, on-premises en hybride relationele databases met behulp van de relationele Microsoft PaaS-databaseaanbiedingen.