sp_spaceused (języka Transact-SQL)

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

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

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

Argumenty

  • [ @objname=] 'objname'
    Jest kwalifikowana lub nonqualified nazwę tabela, indeksowany widoklub kolejki, dla którego wnioskuje się o informacje o wykorzystaniu miejsca.Cudzysłowy są wymagane tylko wtedy, gdy określona nazwa kwalifikowana obiektu.Jeśli zostanie podana nazwa 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.

    objnamejest nvarchar(776), domyślna wartość NULL.

  • [ @updateusage=] 'updateusage'
    Wskazuje, że DBCC UPDATEUSAGE powinna być uruchomiona, aby zaktualizować informacje o wykorzystaniu miejsca na.Gdy objname nie jest określony, instrukcja jest uruchamiana na całej bazy danych; w przeciwnym wypadku instrukcja jest uruchamiana na objname.Wartości mogą być true lub false.updateusagejest varchar(5), domyślnie false.

Wartości kodów powrotnych

0 (sukces) lub 1 (błąd)

Zestawy wyników

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

Nazwa kolumny

Typ danych

Opis

nazwa_bazy_danych

nvarchar(128)

Nazwa bieżącej bazy danych.

database_size

varchar(18)

Rozmiar bieżącej bazy danych w megabajtach.database_size zawiera pliki danych i dziennika.

nieprzydzielone miejsce

varchar(18)

Miejsca w bazie danych, które nie zostały zarezerwowane dla obiektów bazy danych.

Nazwa kolumny

Typ danych

Opis

zarezerwowane

varchar(18)

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

dane

varchar(18)

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

index_size

varchar(18)

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

nieużywane

varchar(18)

Całkowita ilość miejsca zarezerwowane dla obiektów w bazie danych, ale jeszcze niewykorzystanych.

Jeśli objname określono następujące zestaw wyników jest zwracana dla określonego obiektu.

Nazwa kolumny

Typ danych

Opis

name

nvarchar(128)

Nazwa obiektu dla poszczególnych obszarów zażądano informacje o sposobie użycia.

Nazwa schematu obiektu nie jest zwracana.Jeśli wymagana jest nazwa schematu, sys.dm_db_partition_stats lub sys.dm_db_index_physical_stats dynamicznego zarządzania widoki, aby uzyskać informacje o podobnej wielkości.

wiersze

char(11)

Liczba wierszy w tabela.Jeśli określony obiekt jest 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 niewykorzystanych.

Uwagi

database_size zawsze będzie większy niż suma zarezerwowane + nieprzydzielone miejsce , ponieważ zawiera rozmiar plików dziennika, ale zarezerwowane i unallocated_space należy wziąć pod uwagę tylko dane strony.

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

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

Po updateusage jest określony, Aparat baz danych programu SQL Server Skanowanie strony w bazie danych i sprawia, że dowolne wymagane poprawki do sys.allocation_units i sys.partitions widoki wykazu odnośnie do obszaru przechowywania każdej tabela.Istnieją sytuacje, na przykład po porzucone indeks, gdy informacje miejsca dla tabela mogą być nieaktualne.updateusagemoże zająć trochę czas na dużych tabel lub baz danych.Użycie updateusage tylko wtedy, gdy istnieje podejrzenie, że zwracane są niepoprawne wartości, i gdy proces nie będzie mieć niekorzystnego wpływu na innych użytkowników lub procesów w bazie danych.Jeśli preferowane, DBCC UPDATEUSAGE można uruchomić osobno.

Ostrzeżenie

Podczas upuszczania lub duże indeksów lub drop lub obciąć dużych tabel Aparat baz danych podporządkowuje deallocations rzeczywista strona i ich skojarzone blokady, aż po zatwierdzenia transakcji.Operacje odroczonego upuszczania zwalnia przydzielone miejsce niezwłocznie.W związku z tym, wartości zwracane przez sp_spaceused natychmiast po opuszcza lub obcinanie dużego obiektu mogą nie odzwierciedlać rzeczywistego miejsca na dysku.Aby uzyskać więcej informacji na temat odroczonego alokacje Zobacz Upuszczanie i odbudowując dużych obiektów.

Uprawnienia

Uprawnienia do wykonać sp_spaceused jest przyznawana na public rolę.Tylko członkowie db_owner stałą rola bazy danych można określić @ updateusage parametru.

Przykłady

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

Poniższy przykład zgłasza informacje dotyczące miejsca na dysku dla Vendor tabela i jej indeksy.

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

B.Wyświetlanie miejsca zaktualizowane informacje o bazie danych

Poniższy przykład zawiera podsumowanie miejsca używanego w bieżącej bazie danych i opcjonalny parametr @updateusage do zapewnienia bieżącej wartości są zwracane.

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