Udostępnij za pośrednictwem


sp_spaceused (języka Transact-SQL)

Wyświetla liczbę wierszy, zarezerwowane miejsce na dysku i ilość miejsca na dysku używane przez tabela, widok indeksowany, lub Service Broker kolejki w bieżącej bazie danych, lub Wyświetla ilość miejsca na dysku zarezerwowane i używane w całej bazie danych.

Topic link iconKonwencje składni języka Transact-SQL

sp_spaceused [[ @objname = ] 'objname' ] 
[,[ @updateusage = ] 'updateusage' ]

Argumenty

  • [ @objname=] 'objname'
    To nazwa kwalifikowana lub nonqualified tabela, widok indeksowany lub kolejki dla obszaru, który żąda informacji o sposobie użycia.Znaki cudzysłowu są wymagane tylko wtedy, gdy określona jest nazwa kwalifikowana obiektu.Jeśli podano nazwę obiektu w pełni kwalifikowana (łącznie z nazwą bazy danych), nazwa bazy danych musi być nazwą bieżącej bazy danych.

    Jeśli objname nie jest określony, wyniki są zwracane dla całej bazy danych.

    objname jest nvarchar(776), z domyślną wartość NULL.

  • [ @updateusage=] 'updateusage'
    Wskazuje UPDATEUSAGE DBCC powinna być uruchomiona, aby zaktualizować informacje o wykorzystaniu miejsca na.Kiedy objname to nie jest określona, w instrukcja jest uruchamiana na całej bazy danych; w przeciwnym razie w instrukcja jest uruchamiana na objname. Values can be true or false.updateusage is varchar(5), with a default of false.

Wartości kodów powrotnych

0 (sukces) lub 1 (brak)

Zestawy wyników

Jeśli objname jest pominięty, następujące zestawy wyników są zwracane do bieżącego informacje rozmiar bazy danych.

Nazwa kolumna

Typ danych

Description

nazwa_bazy_danych

nvarchar(128)

Nazwa bieżącej bazy danych.

database_size

varchar(18)

Size of the current database in megabytes.database_size includes both data and log files.

nieprzydzielone miejsce

varchar(18)

Miejsca w bazie danych, jaką zarezerwowano dla obiektów bazy danych.

Nazwa kolumna

Typ danych

Description

zarezerwowane

varchar(18)

Całkowita ilość miejsca przydzielonego przez obiekty w bazie danych.

dane

varchar(18)

Całkowita ilość miejsca zajmowanego przez dane.

index_size

varchar(18)

Całkowita ilość miejsca zajmowanego przez indeksów.

nieużywane

varchar(18)

Całkowita ilość miejsca na zarezerwowany dla obiektów w bazie danych, ale jeszcze nie jest używany.

Jeśli objname jest określony, zwracany jest następujący zestaw wyników dla określonego obiektu.

Nazwa kolumna

Typ danych

Description

Nazwa

nvarchar(128)

Nazwa obiektu, do którego miejsca zażądano informacje o sposobie użycia.

Nazwa schematu obiektu nie jest zwracane.Jeśli wymagana jest nazwa schematu, należy użyć sys.dm_db_partition_stats or sys.dm_db_index_physical_stats widoki dynamicznego zarządzania, aby uzyskać informacje o rozmiarze równoważne.

wiersze

char(11)

Liczba wierszy w tabela.Jeśli jest określony obiekt Service Broker kolejki, ta kolumna wskazuje liczbę wiadomości w kolejce.

zarezerwowane

varchar(18)

Całkowita ilość miejsca zarezerwowane dla objname.

dane

varchar(18)

Całkowita ilość miejsca używanego przez dane w objname.

index_size

varchar(18)

Całkowita ilość miejsca zajmowanego przez indeksów w objname.

nieużywane

varchar(18)

Całkowita ilość miejsca zarezerwowane dla objname ale jeszcze nie zostały wykorzystane.

Remarks

database_size będzie zawsze większa od sumy zarezerwowane + nieprzydzielone miejsce , ponieważ zawiera on rozmiar plików dziennika, ale zarezerwowane and unallocated_space należy wziąć pod uwagę tylko danych strony.

Strony, które są używane w indeksach XML i indeksy pełnotekstowe znajdują się w index_size dla obu zestawów wyników.Kiedy objname określono stron dla indeksów XML i indeksy pełnotekstowe dla obiektu zliczane są także w całości zarezerwowane and index_size wyniki.

Jeśli użycie miejsca na jest obliczany dla bazy danych lub obiekt, który ma przestrzennej indeksu, kolumny rozmiar obszaru, na przykład database_size, zarezerwowane, and index_size, zawiera rozmiar przestrzennej indeksu.

Kiedy updateusage jest określony, SQL Server Database Engine skanowanie dane ze stron w bazie danych i sprawia, że dowolne wymagane korekty sys.allocation_units and sys.Partitions wykazu widoki dotyczących miejsca, używana przez każdą tabela.There are some situations, for example, after an index is dropped, when the space information for the table may not be current.updateusage can take some time to run on large tables or databases.Użycie updateusage tylko wtedy, gdy użytkownik podejrzewa, że niepoprawne zwracane są wartości, a kiedy proces nie mają negatywny wpływ na innych użytkowników lub procesów w bazie danych. Jeśli preferowane, UPDATEUSAGE DBCC można uruchomić osobno.

Uwaga

Podczas upuszczania lub duże indeksów lub upuszczania oraz obcinania dużych tabel Database Engine defers deallocations rzeczywiste strona i ich skojarzone blokady, dopóki po zatwierdzeniu transakcji. Odroczone upuszczania operacji nie natychmiast Zwolnij przydzielonego miejsca.W związku z tym wartości zwracane przez sp_spaceused natychmiast po upuszczając lub obcinanie dużego obiektu może nie odzwierciedlać rzeczywistych miejsca dostępna.Aby uzyskać więcej informacji na temat odroczone przydziałów zobacz Dropping and Rebuilding Large Objects.

Uprawnienia

Uprawnienia do wykonać sp_spaceused jest przyznawanepubliczne roli.Tylko członkowie db_owner określić stała rola bazy danych**@ updateusage** parametr.

Przykłady

A.Wyświetlanie informacji dotyczących miejsca na dysku o tabela

W poniższym przykładzie raportuje informacje dotyczące miejsca na dysku dla Vendor Tabela i jej indeksów.

USE AdventureWorks;
GO
EXEC sp_spaceused N'Purchasing.Vendor';
GO

B.Wyświetlanie miejsca zaktualizowane informacje o bazie danych

W poniższym przykładzie zestawiono miejsca używanego w bieżącej bazie danych i opcjonalny parametr @updateusage Aby zapewnić zwracane są bieżące wartości.

USE AdventureWorks;
GO
EXEC sp_spaceused @updateusage = N'TRUE';
GO