2009-05-29 28 views

Respuesta

6

Si puede utilizar procedimientos almacenados, esto debería funcionar:

exec sp_msforeachdb 'use ? exec sp_spaceused' 
+0

Aunque esto va a devolver un conjunto de resultados para cada una de las bases de datos que se parece un poco desordenado. Prefiero usar mi respuesta que da una * buena * mesa. – pjp

4

Mira la tabla sys.master_files.

Esta consulta le dará Tamaño total de todo en su instancia:

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

La forma más sencilla es utilizar:

exec [sys].[sp_databases] 
go 

Que produce algo como:

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

Para el tamaño de los registros de transacciones asociadas con una base de datos, utilice:

dbcc sqlperf(logspace) 
go 

que produce algo así como:

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

hey thomas, ¿hay alguna manera de formatear la salida de la primera consulta en MB directamente? ¡muchas gracias! – RayofCommand

2
exec sp_helpdb 

Listas cabo el tamaño de los datos, el propietario , fecha de creación, etc. para todas las bases de datos en un servidor en una buena mesa.

Si a continuación desea ir profundizando en una base de datos en particular para ver los tamaños individuales de la mesa se puede utilizar

use MyFunkyDb 
go 
EXECUTE sp_MSforeachtable 'EXECUTE sp_spaceused [?]' 
Cuestiones relacionadas