Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
              gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Den sp_spaceused system lagrade proceduren visar antingen:
- antalet rader, reserverat diskutrymme och diskutrymme som används av en tabell, indexerad vy eller Service Broker-kö i den aktuella databasen 
- det reserverade diskutrymmet och som används av hela databasen 
              
              
              Transact-SQL syntaxkonventioner
Syntax
sp_spaceused
    [ [ @objname = ] N'objname' ]
    [ , [ @updateusage = ] 'updateusage' ]
    [ , [ @mode = ] 'mode' ]
    [ , [ @oneresultset = ] oneresultset ]
    [ , [ @include_total_xtp_storage = ] include_total_xtp_storage ]
[ ; ]
Anmärkning
Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.
Argumentpunkter
För Azure Synapse Analytics and Analytics Platform System (PDW) sp_spaceused måste du ange namngivna parametrar (till exempel sp_spaceused (@objname= N'Table1');) i stället för att förlita sig på parametrarnas ordningstal.
[ @objname = ] N'objname'
Det kvalificerade eller icke-kvalificerade namnet på tabellen, den indexerade vyn eller kön för vilken information om utrymmesanvändning begärs. 
              @objname är nvarchar(776), med standardvärdet NULL. Citattecken krävs endast om ett kvalificerat objektnamn har angetts. Om ett fullständigt kvalificerat objektnamn (inklusive ett databasnamn) anges måste databasnamnet vara namnet på den aktuella databasen.
Om @objname inte anges returneras resultaten för hela databasen.
Anmärkning
Azure Synapse Analytics and Analytics Platform System (PDW) stöder endast databas- och tabellobjekt.
[ @updateusage = ] "updateusage"
Anger DBCC UPDATEUSAGE att ska köras för att uppdatera information om utrymmesanvändning. 
              @updateusage är varchar(5), med standardvärdet false. När @objname inte har angetts körs -instruktionen på hela databasen. Annars körs -instruktionen på @objname. Värden kan vara true eller false.
[ @mode = ] "läge"
Anger resultatets omfattning. För en utsträckt tabell eller databas kan du med parametern @mode inkludera eller exkludera fjärrdelen av objektet. Mer information finns i Stretch Database.
Viktigt!
Stretch Database är inaktuell i SQL Server 2022 (16.x) och Azure SQL Database. Den här funktionen tas bort i en framtida version av databasmotorn. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen.
@mode är varchar(11) och kan vara ett av dessa värden.
| Värde | Beskrivning | 
|---|---|
| ALL(standardinställning) | Returnerar lagringsstatistiken för objektet eller databasen, inklusive både den lokala delen och fjärrdelen. | 
| LOCAL_ONLY | Returnerar lagringsstatistiken för endast den lokala delen av objektet eller databasen. Om objektet eller databasen inte är Stretch-aktiverad returnerar samma statistik som när @mode är ALL. | 
| REMOTE_ONLY | Returnerar lagringsstatistiken för endast fjärrdelen av objektet eller databasen. Det här alternativet genererar ett fel när något av följande villkor är sant: Tabellen är inte aktiverad för Stretch. Tabellen är aktiverad för Stretch, men du har aldrig aktiverat datamigrering. I det här fallet har fjärrtabellen ännu inget schema. Användaren tappade fjärrtabellen manuellt. Etableringen av fjärrdataarkivet returnerade statusen Lyckades, men det misslyckades i själva verket. | 
[ @oneresultset = ] oneresultset
Anger om en enskild resultatuppsättning ska returneras. @oneresultset är lite och kan vara ett av följande värden:
| Värde | Beskrivning | 
|---|---|
| 0(standardinställning) | När @objname är null eller inte har angetts returneras två resultatuppsättningar. | 
| 1 | När @objname har NULLangetts eller inte har angetts returneras en enda resultatuppsättning. | 
[ @include_total_xtp_storage = ] include_total_xtp_storage
Gäller för: SQL Server 2017 (14.x) och senare versioner och SQL Database
När @oneresultset är inställt på 1avgör den här parametern om den enskilda resultatuppsättningen innehåller kolumner för MEMORY_OPTIMIZED_DATA lagring. 
              @include_total_xtp_storage är bit, med standardvärdet 0. Om 1inkluderas XTP-kolumner i resultatuppsättningen.
Returnera kodvärden
              0 (lyckades) eller 1 (fel).
Resultatuppsättning
Om @objname utelämnas och värdet för @oneresultset är 0returneras följande resultatuppsättningar för att ange aktuell databasstorleksinformation.
| Kolumnnamn | Datatyp | Beskrivning | 
|---|---|---|
| database_name | nvarchar(128) | Namnet på den aktuella databasen. | 
| database_size | varchar(18) | Storleken på den aktuella databasen i megabyte. database_sizeinnehåller både data och loggfiler. | 
| unallocated space | varchar(18) | Utrymme i databasen som inte är reserverat för databasobjekt. | 
| Kolumnnamn | Datatyp | Beskrivning | 
|---|---|---|
| reserved | varchar(18) | Total mängd utrymme som allokerats av objekt i databasen. | 
| data | varchar(18) | Total mängd utrymme som används av data. | 
| index_size | varchar(18) | Total mängd utrymme som används av index. | 
| unused | varchar(18) | Total mängd utrymme som reserverats för objekt i databasen, men som ännu inte används. | 
Om @objname utelämnas och värdet för @oneresultset är 1returneras följande enskilda resultatuppsättning för att ange aktuell databasstorleksinformation.
| Kolumnnamn | Datatyp | Beskrivning | 
|---|---|---|
| database_name | nvarchar(128) | Namnet på den aktuella databasen. | 
| database_size | varchar(18) | Storleken på den aktuella databasen i megabyte. database_sizeinnehåller både data och loggfiler. | 
| unallocated space | varchar(18) | Utrymme i databasen som inte är reserverat för databasobjekt. | 
| reserved | varchar(18) | Total mängd utrymme som allokerats av objekt i databasen. | 
| data | varchar(18) | Total mängd utrymme som används av data. | 
| index_size | varchar(18) | Total mängd utrymme som används av index. | 
| unused | varchar(18) | Total mängd utrymme som reserverats för objekt i databasen, men som ännu inte används. | 
Om @objname anges returneras följande resultatuppsättning för det angivna objektet.
| Kolumnnamn | Datatyp | Beskrivning | 
|---|---|---|
| name | nvarchar(128) | Namnet på det objekt som information om utrymmesanvändning begärdes för. Objektets schemanamn returneras inte. Om schemanamnet krävs använder du sys.dm_db_partition_stats eller sys.dm_db_index_physical_stats dynamiska hanteringsvyer för att hämta motsvarande storleksinformation. | 
| rows | char(20) | Antal rader som finns i tabellen. Om det angivna objektet är en Service Broker-kö anger den här kolumnen antalet meddelanden i kön. | 
| reserved | varchar(18) | Totalt reserverat utrymme för @objname. | 
| data | varchar(18) | Total mängd utrymme som används av data i @objname. | 
| index_size | varchar(18) | Total mängd utrymme som används av index i @objname. | 
| unused | varchar(18) | Totalt utrymme reserverat för @objname men används ännu inte. | 
Det här läget är standard när inga parametrar har angetts. Följande resultatuppsättningar returneras med information om storleken på diskdatabasen.
| Kolumnnamn | Datatyp | Beskrivning | 
|---|---|---|
| database_name | nvarchar(128) | Namnet på den aktuella databasen. | 
| database_size | varchar(18) | Storleken på den aktuella databasen i megabyte. database_sizeinnehåller både data och loggfiler. Om databasen har enMEMORY_OPTIMIZED_DATAfilgrupp innehåller det här värdet den totala storleken på disken för alla kontrollpunktsfiler i filgruppen. | 
| unallocated space | varchar(18) | Utrymme i databasen som inte är reserverat för databasobjekt. Om databasen har en MEMORY_OPTIMIZED_DATAfilgrupp innehåller det här värdet den totala storleken på disken för kontrollpunktsfilerna med tillståndPRECREATEDi filgruppen. | 
Utrymme som används av tabeller i databasen. Den här resultatuppsättningen återspeglar inte minnesoptimerade tabeller eftersom det inte finns någon redovisning per tabell av diskanvändning:
| Kolumnnamn | Datatyp | Beskrivning | 
|---|---|---|
| reserved | varchar(18) | Total mängd utrymme som allokerats av objekt i databasen. | 
| data | varchar(18) | Total mängd utrymme som används av data. | 
| index_size | varchar(18) | Total mängd utrymme som används av index. | 
| unused | varchar(18) | Total mängd utrymme som reserverats för objekt i databasen, men som ännu inte används. | 
Följande resultatuppsättning returneras endast om databasen har en MEMORY_OPTIMIZED_DATA filgrupp med minst en container:
| Kolumnnamn | Datatyp | Beskrivning | 
|---|---|---|
| xtp_precreated | varchar(18) | Total storlek på kontrollpunktsfiler med tillståndet PRECREATED, i KB. Räknas mot det oallokerade utrymmet i databasen som helhet. Om det till exempel finns 600 000 KB för förskapade kontrollpunktsfiler innehåller600000 KBden här kolumnen . | 
| xtp_used | varchar(18) | Total storlek på kontrollpunktsfiler med tillstånden UNDER CONSTRUCTION,ACTIVEochMERGE TARGET, i KB. Det här värdet är diskutrymmet som aktivt används för data i minnesoptimerade tabeller. | 
| xtp_pending_truncation | varchar(18) | Total storlek på kontrollpunktsfiler med tillståndet WAITING_FOR_LOG_TRUNCATION, i KB. Det här värdet är diskutrymmet som används för kontrollpunktsfiler som väntar på rensning när loggtrunkeringen inträffar. | 
Om @objname utelämnas är 1värdet för @oneresultset , och @include_total_xtp_storage är 1returneras följande enskilda resultatuppsättning för att ange aktuell databasstorleksinformation. Om @include_total_xtp_storage är 0 (standard) utelämnas de tre sista kolumnerna.
| Kolumnnamn | Datatyp | Beskrivning | 
|---|---|---|
| database_name | nvarchar(128) | Namnet på den aktuella databasen. | 
| database_size | varchar(18) | Storleken på den aktuella databasen i megabyte. database_sizeinnehåller både data och loggfiler. Om databasen har enMEMORY_OPTIMIZED_DATAfilgrupp innehåller det här värdet den totala storleken på disken för alla kontrollpunktsfiler i filgruppen. | 
| unallocated space | varchar(18) | Utrymme i databasen som inte är reserverat för databasobjekt. Om databasen har en MEMORY_OPTIMIZED_DATAfilgrupp innehåller det här värdet den totala storleken på disken för kontrollpunktsfilerna med tillståndPRECREATEDi filgruppen. | 
| reserved | varchar(18) | Total mängd utrymme som allokerats av objekt i databasen. | 
| data | varchar(18) | Total mängd utrymme som används av data. | 
| index_size | varchar(18) | Total mängd utrymme som används av index. | 
| unused | varchar(18) | Total mängd utrymme som reserverats för objekt i databasen, men som ännu inte används. | 
| xtp_precreated1 | varchar(18) | Total storlek på kontrollpunktsfiler med tillståndet PRECREATED, i KB. Det här värdet räknas mot det oallokerade utrymmet i databasen som helhet. ReturnerarNULLom databasen inte har enMEMORY_OPTIMIZED_DATAfilgrupp med minst en container. | 
| xtp_used1 | varchar(18) | Total storlek på kontrollpunktsfiler med tillstånden UNDER CONSTRUCTION,ACTIVEochMERGE TARGET, i KB. Det här värdet är diskutrymmet som aktivt används för data i minnesoptimerade tabeller. ReturnerarNULLom databasen inte har enMEMORY_OPTIMIZED_DATAfilgrupp med minst en container. | 
| xtp_pending_truncation1 | varchar(18) | Total storlek på kontrollpunktsfiler med tillståndet WAITING_FOR_LOG_TRUNCATION, i KB. Det här värdet är diskutrymmet som används för kontrollpunktsfiler som väntar på rensning när loggtrunkeringen inträffar. ReturnerarNULLom databasen inte har enMEMORY_OPTIMIZED_DATAfilgrupp med minst en container. | 
              1 Inkluderas endast om @include_total_xtp_storage är inställt på 1.
Anmärkningar
Värdet database_size är vanligtvis större än summan av reservedunallocated space + eftersom det innehåller storleken på loggfiler, men reserved och unallocated_space överväg endast datasidor. I vissa fall med Azure Synapse Analytics kanske den här instruktionen inte är sann.
Sidor som används av XML-index och fulltextindex ingår i index_size båda resultatuppsättningarna. När @objname anges räknas även sidorna för XML-indexen och fulltextindexen för objektet i totalsumman reserved och index_size resultaten.
Om utrymmesanvändningen beräknas för en databas eller ett objekt som är ett rumsligt index, inkluderar kolumnerna med utrymmesstorlek, till exempel database_size, reservedoch index_size, storleken på det rumsliga indexet.
När @updateusage anges söker SQL Server Database Engine igenom datasidorna i databasen och gör eventuella nödvändiga korrigeringar av vyerna sys.allocation_units och sys.partitions katalogvyerna för lagringsutrymmet som används av varje tabell. Det finns vissa situationer, till exempel när ett index har släppts, när utrymmesinformationen för tabellen kanske inte är aktuell. 
              @updateusage kan ta lite tid att köra på stora tabeller eller databaser. Använd endast @updateusage när du misstänker att felaktiga värden returneras och när processen inte har en negativ effekt på andra användare eller processer i databasen. Om du vill DBCC UPDATEUSAGE kan du köra separat.
Anmärkning
När du släpper eller återskapar stora index, eller släpper eller trunkerar stora tabeller, defersar databasmotorn de faktiska sidborttagningarna och deras associerade lås tills transaktionen har checkats in. Uppskjutna släppåtgärder frigör inte allokerat utrymme omedelbart. Därför kanske värdena som returneras sp_spaceused direkt efter att ett stort objekt har släppts eller trunkerats kanske inte återspeglar det faktiska tillgängliga diskutrymmet.
Behörigheter
Behörighet att köra sp_spaceused beviljas till den offentliga rollen. Endast medlemmar i den db_owner fasta databasrollen kan ange parametern @updateusage.
Exempel
A. Visa diskutrymmesinformation om en tabell
I följande exempel rapporterar vi diskutrymmesinformation för Vendor tabellen och dess index.
USE AdventureWorks2022;
GO
EXECUTE sp_spaceused N'Purchasing.Vendor';
GO
B. Visa uppdaterad utrymmesinformation om en databas
I följande exempel sammanfattas det utrymme som används i den aktuella databasen och den valfria parametern @updateusage för att säkerställa att aktuella värden returneras.
USE AdventureWorks2022;
GO
EXECUTE sp_spaceused @updateusage = N'TRUE';
GO
C. Visa information om utrymmesanvändning om fjärrtabellen som är associerad med en Stretch-aktiverad tabell
I följande exempel sammanfattas det utrymme som används av fjärrtabellen som är associerad med en Stretch-aktiverad tabell med hjälp av argumentet @mode för att ange fjärrmålet. Mer information finns i Stretch Database.
USE StretchedAdventureWorks2022;
GO
EXECUTE sp_spaceused N'Purchasing.Vendor', @mode = 'REMOTE_ONLY';
D. Visa information om utrymmesanvändning för en databas i en enda resultatuppsättning
I följande exempel sammanfattas utrymmesanvändningen för den aktuella databasen i en enda resultatuppsättning.
USE AdventureWorks2022;
GO
EXECUTE sp_spaceused @oneresultset = 1;
E. Visa information om utrymmesanvändning för en databas med minst en MEMORY_OPTIMIZED filgrupp i en enda resultatuppsättning
I följande exempel sammanfattas utrymmesanvändningen för den aktuella databasen med minst en MEMORY_OPTIMIZED filgrupp i en enda resultatuppsättning.
USE WideWorldImporters;
GO
EXECUTE sp_spaceused
    @updateusage = 'FALSE',
    @mode = 'ALL',
    @oneresultset = '1',
    @include_total_xtp_storage = '1';
GO
F. Visa information om utrymmesanvändning för ett MEMORY_OPTIMIZED tabellobjekt i en databas
I följande exempel sammanfattas utrymmesanvändningen för ett MEMORY_OPTIMIZED tabellobjekt i den aktuella databasen med minst en MEMORY_OPTIMIZED filgrupp.
USE WideWorldImporters;
GO
EXECUTE sp_spaceused
    @objname = N'VehicleTemperatures',
    @updateusage = 'FALSE',
    @mode = 'ALL',
    @oneresultset = '0',
    @include_total_xtp_storage = '1';
GO