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.
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
See Also