Bruno Perroni
DBA SQL Server com mais de 6 anos de experiência!

Espaço Alocado, Utilizado e Disponível dos Bancos de Dados

Fala galera.

Nesse post disponibilizo um script bem simples para levantamento do espaço alocado, utilizado e disponível dos databases.

É sempre bom ter esse tipo de informação atualizada para não ser surpreendido durante o dia com erros de falta de espaço.

IF OBJECT_ID('tempdb..#ESPACO_DATABASES') IS NOT NULL
	DROP TABLE #ESPACO_DATABASES

CREATE TABLE #ESPACO_DATABASES (
	 DRIVE CHAR(1)
	,TAMANHO_ARQUIVO DECIMAL(15, 2)
	,ESPACO_UTILIZADO DECIMAL(15, 2)
	,ESPACO_LIVRE DECIMAL(15, 2)
	,ARQUIVO VARCHAR(100)
	,CAMINHO_ARQUIVO VARCHAR(255)
	)

INSERT INTO #ESPACO_DATABASES
EXEC master.sys.sp_MSforeachdb ' USE [?];
   SELECT  SUBSTRING(A.FILENAME, 1, 1) AS DRIVE
	  ,CONVERT(DECIMAL(12, 2), ROUND(A.SIZE / 128.000, 2)) AS TAMANHO_ARQUIVO
	  ,CONVERT(DECIMAL(12, 2), ROUND(FILEPROPERTY(A.NAME, ''SPACEUSED'') / 128.000, 2)) AS ESPACO_UTILIZADO
	  ,CONVERT(DECIMAL(12, 2), ROUND((A.SIZE - FILEPROPERTY(A.NAME, ''SPACEUSED'')) / 128.000, 2)) AS ESPACO_LIVRE
	  ,A.NAME AS ARQUIVO
	  ,A.FILENAME AS CAMINHO_ARQUIVO
	FROM dbo.sysfiles A
	ORDER BY ARQUIVO
		,DRIVE
   '

SELECT *
FROM #ESPACO_DATABASES