Verificando percentual livre em cada disco do servidor pelo SQL Server

Hoje em dia é comum uma empresa possuir muitos servidores, e talvez controlar todos eles se torne uma tarefa inviavel, portanto existem algumas soluções como o PowerShell + CMS (Central Management Servers) aonde voce pode apontar muitos servidores que serão gerenciados e executar queries diretamente em todos eles, ou se utilizar o PoSh pode até schedular via SQL Agent essa coleta de informações, neste post não estou focando nem em PoSh nem em CMS, e sim em uma query muito util que utilizo. Essa query me traz o nome da instancia SQL Server, o nome de seus discos, o total utilizado, o total livre e o percentual livre.

sp_configure 'Ole Automation Procedures', 1;
GO 
RECONFIGURE;
GO
DECLARE @hr int
DECLARE @fso int
DECLARE @drive char(1)
DECLARE @odrive int
DECLARE @TotalSize varchar(20) DECLARE @MB Numeric ; SET @MB = 1048576
CREATE TABLE #drives (drive char(1) PRIMARY KEY, FreeSpace int NULL,
TotalSize int NULL) INSERT #drives(drive,FreeSpace) EXEC
master.dbo.xp_fixeddrives EXEC @hr=sp_OACreate
'Scripting.FileSystemObject',@fso OUT IF @hr  0 EXEC sp_OAGetErrorInfo
@fso
DECLARE dcur CURSOR LOCAL FAST_FORWARD
FOR SELECT drive from #drives ORDER by drive
OPEN dcur FETCH NEXT FROM dcur INTO @drive
WHILE @@FETCH_STATUS=0
BEGIN
EXEC @hr = sp_OAMethod @fso,'GetDrive', @odrive OUT, @drive
IF @hr  0 EXEC sp_OAGetErrorInfo @fso EXEC @hr =
sp_OAGetProperty
@odrive,'TotalSize', @TotalSize OUT IF @hr  0 EXEC sp_OAGetErrorInfo
@odrive UPDATE #drives SET TotalSize=@TotalSize/@MB WHERE
drive=@drive FETCH NEXT FROM dcur INTO @drive
End
Close dcur
DEALLOCATE dcur
EXEC @hr=sp_OADestroy @fso IF @hr  0 EXEC sp_OAGetErrorInfo @fso
SELECT
@@servername, drive, TotalSize as 'Total(GB)', FreeSpace as 'Free(GB)', 100-(100*FreeSpace)/TotalSize as '%'
FROM #drives
ORDER BY drive 
DROP TABLE #drives 
GO 
sp_configure 'Ole Automation Procedures', 0;
GO 
RECONFIGURE;
GO
Anúncios
Post a comment or leave a trackback: Trackback URL.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: