2009-05-29 18 views

Odpowiedz

6

Jeśli można użyć procedur przechowywanych, to powinno działać:

exec sp_msforeachdb 'use ? exec sp_spaceused' 
+0

Choć będzie to oddać zestaw wyników dla każdej z baz danych, które wygląda nieco niechlujny. Wolę używać mojej odpowiedzi, która daje * miły * stół. – pjp

4

Sprawdź tabelę sys.master_files.

To zapytanie da Ci całkowity rozmiar wszystkiego w swoim przykład:

SELECT SUM(size*8192.0) AS totalsize 
FROM sys.master_files; 
2

Najprostszym sposobem jest użycie:

exec [sys].[sp_databases] 
go 

Który produkuje coś takiego:

Name  Size Remarks 
mydatabase1 29888 NULL 
mydatabase2 13760 NULL 
mydatabase3 11776 NULL 
master  5376 NULL 
model  3008 NULL 
msdb  7616 NULL 
tempdb  2560 NULL 

do wielkości transakcją dzienniki związane z bazą danych, przeznaczenie:

dbcc sqlperf(logspace) 
go 

która produkuje coś takiego:

Name  Log Size (MB) Log Space Used (%) Status 
master  1.242188  50.9434   0 
tempdb  0.7421875  61.25    0 
model  0.7421875  38.94737   0 
msdb  1.992188  35.88235   0 
mydatabase1 5.554688  18.55661   0 
mydatabase2 2.742188  32.9594   0 
mydatabase3 8.992188  26.58015   0 
+0

hej thomas, czy istnieje sposób na sformatowanie ouput pierwszego zapytania w MB bezpośrednio? Dziękuję Ci bardzo! – RayofCommand

2
exec sp_helpdb 

list z wielkością danych właściciela , data utworzenia itd. dla wszystkich baz danych na serwerze w jednej ładnej tabeli.

Jeśli następnie chce iść zagłębiając się w konkretnej bazy danych, aby zobaczyć poszczególne Tabela można użyć

use MyFunkyDb 
go 
EXECUTE sp_MSforeachtable 'EXECUTE sp_spaceused [?]' 
Powiązane problemy