2011-08-19 10 views

risposta

19

È possibile interrogare master.sys.master_files:

SELECT CONVERT(DECIMAL(10,2),(SUM(size * 8.00)/1024.00/1024.00)) As UsedSpace 
FROM master.sys.master_files 

questo vi darà un totale in GB.

Sys.Master_files è una vista a livello di server che elenca ogni file in ogni DB. È disponibile da SQL Server 2005 in poi.

+0

Questo è esattamente quello che stavo cercando, grazie. Immagino che per SQL Server 2000 dovrò usare il codice che jennifer-s ha fornito, giusto? – olmed0

+0

Grazie. Semplice e utile. –

2

Ecco una risposta che ho trovato su SQLServerCentral.com. Ci sono un paio di script diversi forniti da utenti diversi in questa pagina. Forse uno di loro fornirebbe quello che stai cercando.

http://www.sqlservercentral.com/Forums/Topic670489-146-1.aspx

Ecco uno degli script da MANU-J:

Create TABLE #db_file_information( 
fileid integer 
, theFileGroup integer 
, Total_Extents integer 
, Used_Extents integer 
, db varchar(30) 
, file_Path_name varchar(300)) 

-- Get the size of the datafiles 

insert into #db_file_information 
(fileid 
, theFileGroup 
, Total_Extents 
, Used_Extents 
, db 
, file_Path_name) 
exec sp_MSForEachDB 'Use ?; DBCC showfilestats' 

-- add two columns to the temp table 

alter table #db_file_information add PercentFree as 
((Total_Extents-Used_Extents)*100/(Total_extents)) 

alter table #db_file_information add TotalSpace_MB as 
((Total_Extents*64)/1024) 

alter table #db_file_information add UsedSpace_MB as 
((Used_Extents*64)/1024) 

alter table #db_file_information add FreeSpace_MB as 
((Total_Extents*64)/1024-(Used_Extents*64)/1024) 

select * from #db_file_information 

drop table #db_file_information 
+0

In genere scoraggiano link-solo risposte in quanto se il link muore la risposta è inutile. Si prega di inserire un estratto o alcuni esempi nel testo della risposta. – JNK

+0

Siamo spiacenti. Modificato per includere uno degli script. –

+1

Si prega di diffidare di sp_MSforeachdb; non funziona sempre per tutti i database (vedere i miei commenti a riguardo qui http://sqlblog.com/blogs/aaron_bertrand/archive/2010/12/29/a-more-reliable-and-more-flexible-sp-msforeachdb aspx). Ho scritto una copia di ricambio che puoi copiare da qui: http://www.mssqltips.com/tip.asp?tip=2201 –

0

Solo nel caso qualcuno ha bisogno per-file di calcolo:

select physical_name, size, 
    CONVERT(DECIMAL(10,2),(size * 8.00)/1024.00) As UsedSpace 
from master.sys.master_files 
order by physical_name 

I risultati sono in MByte

Problemi correlati