MCDBA Brasil


  • Home
  • Sobre
  • Contato

Livros





Links Rápidos

SQL Server Builds (All Versions/Editions)


Download SQL Server 2017 (trial)


SQL Server 2017 Feature Pack


SQL Server 2016 Feature Pack


Cumulative Update SQL Server 2017 builds


Cumulative Update SQL Server 2016 builds


Cumulative Update SQL Server 2014 builds


Cumulative Update SQL Server 2012 builds


SQL Server 2005/2008 Samples Databases


Documentando o Servidor SQL Server


Analisando a Performance do Servidor-CheckList


Virtual PASS PT


Faça parte do maior virtual chapter do PASS com conteúdos técnicos em Português sobre SQL Server.

Todos os meses um evento Online para você! Acompanhe aqui os WebCasts já agendados

Sindicalize seu blog ou site ao VirtualPASSPT

SQL Server Blogs

SQL Server Query Processing Team


SQL Programmability & API Development Team


SQL Server Manageability Team


Latin America Support Team


Database + Disk + Performance


Microsoft SQL Server Support


SQL CLR Team


SQL Query Optimization Team


SQL 2005 Code Samples


SQL Server Express Team


SQL SMO Samples


SQL Storage Engine Team


SQL CAT Team


SQL Protocols Team


PSS SQL Server Engineers


Slava Oks on SQLOS


Ken Henderson’s blog


LUTI@Microsoft Blog


kimberly L. Trip’s blog


Fernando Garcia Blog

Dica da Semana

Monitorando o Espaço em Disco do Servidor SQL Server

por Nilton Pinheiro dezembro 31, 2007 Nenhum comentário

É muito comum encontrar em fórumns DBA perguntando sobre como fazer para monitorar pelo SQL Server o tamanho dos discos e seus respectivos espaço livre.

Pensando nisso, apresento a você a procedure usp_monit_disco. Esta procedure deve ser criada no banco de dados master e ao executá-la retorna informações como:


a) tamanho total do disco
b) Espaço usado e espaço livre (MB)
c) b) Espaço usado e espaço livre (%)
d) Espaço ocupado pelo SQL Server (MB)
e) A data de coleta das informações.


Uma vez que a procedure retorna a data da coleta, fica muito fácil manter por exemplo um histórico desta informações, permitindo que você tenha um acompanhamento do espaço em seus discos. Para isso, basta você alterar a procedure trocando a tabela temporária #espacodisco por uma tabela real em seu banco de dados.


O código completo da procedure está abaixo e ao ser executado você terá o seguinte resultado:


Drive Tamanho (MB) Usado (MB) Livre (MB) Livre (%) Usado (%) Ocupado SQL (MB) Data
—– ———— ———– ———– ——— ——— —————- ———————–
C: 6134 5527 607 9% 91% 581 2007-12-31 13:15:00
D: 14323 7914 6409 44% 56% NULL 2007-12-31 13:15:00


PROCEDURE


USE Master
GO
CREATE PROCEDURE usp_monit_disco
AS
SET
NOCOUNT ON


CREATE TABLE #dbspace (
name sysname,
caminho varchar(200),
tamanho varchar(10),
drive Varchar(30))


CREATE TABLE [#espacodisco] (
Drive varchar (10) ,
[Tamanho (MB)] Int,
[Usado (MB)] Int,
[Livre (MB)] Int,
[Livre (%)] Varchar(100),
[Usado (%)] Varchar(100),
[Ocupado SQL (MB)] Int,
[Data]
smalldatetime)


Exec SP_MSForEachDB ‘Use ? Insert into #dbspace Select Convert(Varchar(25),DB_Name())”Database”,Convert(Varchar(60),FileName),Convert(Varchar(8),Size/128)”Size in MB”,Convert(Varchar(30),Name) from SysFiles’


DECLARE @hr int,@fso int,@mbtotal int,
@TotalSpace int,@MBFree int,
@Percentage int,@SQLDriveSize int,
@size float
DECLARE
@drive Varchar(1),@fso_Method varchar(255)


SET @mbTotal = 0
EXEC @hr = master.dbo.sp_OACreate ‘Scripting.FilesystemObject’, @fso OUTPUT


CREATE TABLE #space (drive char(1), mbfree int)
INSERT INTO #space EXEC master.dbo.xp_fixeddrives
Declare CheckDrives Cursor For Select drive,MBfree From #space
Open CheckDrives
Fetch Next from CheckDrives into @Drive,@MBFree
WHILE(@@FETCH_STATUS=0)
BEGIN
SET @fso_Method = ‘Drives(“‘ + @drive + ‘:”).TotalSize’
SELECT @SQLDriveSize=sum(Convert(Int,tamanho)) from #dbspace where Substring(caminho,1,1)=@drive
EXEC @hr = sp_OAMethod @fso, @fso_method, @size OUTPUT
SET @mbtotal = @mbtotal + @size / (1024 * 1024)
INSERT INTO #espacodisco VALUES(@Drive+‘:’,@MBTotal,@MBTotal–@MBFree,@MBFree,
Convert(Varchar,100 * round(@MBFree,2) / round(@MBTotal,2))+‘%’,
Convert(Varchar,100 – 100 * round(@MBFree,2) / round(@MBTotal,2))+‘%’,@SQLDriveSize, getdate())


FETCH NEXT FROM CheckDrives INTO @drive,@mbFree
END
CLOSE
CheckDrives
DEALLOCATE CheckDrives


SELECT * FROM #espacodisco
DROP TABLE #dbspace
DROP TABLE #space
DROP TABLE #espacodisco
GO


Nota: Para executar esta procedure no SQL Server 2005 você deve ativar a opção de OLE Automation na sp_configure. O script abaixo permite que você ative esta opção.


sp_configure ‘show advanced options’, 1
RECONFIGURE
GO
sp_configure ‘Ole Automation Procedures’, 1
RECONFIGURE
GO
sp_configure ‘show advanced options’, 0
RECONFIGURE
GO


Abraços
Nilton Pinheiro

Avaliação:
Compartilhe:
  • Anterior Collection 6187: What’s New in Microsoft SQL Server 200818 anos atrás
  • Próximo Monitorando o Uso de CPU do Servidor SQL Server18 anos atrás

Deixe uma resposta Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

MVP Reconnect Award

Categorias

  • Artigos (359)
  • Dica da Semana (95)
  • Documentação (54)
  • Downloads (113)
  • MSDE 2000 (3)
  • Sem categoria (1)
  • Tutoriais (9)

Posts recentes

  • #FechouBrasil #PartiuPortugal
  • Brigando com o erro “The cached MSI file is missing”
  • MCDBABRASIL está de volta
  • Documentando o Servidor SQL Server
  • Brigando com os Erros 17182, 17826 e 17120

SQL Server AlwaysOn Video Series

Video1: Introdução ao SQLServer2012 AlwaysOn


Video2: Introdução ao SQLServer2012 AlwaysOn Availability Group


Video3: Introdução ao SQLServer2012 AlwaysOn AVG-Demo


Video4: Introdução ao SQLServer2012 AlwaysOn Listener


Video5: Introdução ao SQLServer2012 AlwaysOn Readable Secondaries


Video6: Introdução ao SQLServer2012 AlwaysOn Readable Secondaries-Demo


Video7: Introdução ao SQLServer2012 AlwaysOn Failover Clustering


Serie SQL Server Failover Clustering End-to-End

Parte 1: Configuração da Rede e Ambiente


Parte 2: Configurando o Windows 2008 R2 Domain Controler e DNS


Parte 3: Preparando os nós para o Failover Cluster


Parte 4: Configurando um Failover Cluster de 2 nós


Parte 5: Configurando as LUNs no iSCSI Software Target (Parte 1)


Parte 6: Configurando as LUNs no iSCSI Software Target (Parte 2)


Parte 7: Apresentando as LUNs para os nós do Failover Cluster


Parte 8: Configurando os discos no Failover Cluster


Parte 9: Instalando a primeira instância virtual do SQL Server 2008


Parte 10: Instalando a segunda instância virtual do SQL Server 2008


Parte 11: Instalando e Configurando o MSDTC no Failover Cluster


Parte 12: Configurando Mount Points no Cluster e SQL Server 2008


Vídeo Extra: Removendo uma Instância do SQL Server 2008 R2 em Cluster


Alta Disponibilidade no SQL Server 2008 R2: Failover Clustering Overview


Alta Disponibilidade no SQL Server 2008 R2: Failover Clustering na Prática

Menu

  • Home
  • Sobre
  • Contato

Mais

  • RSS Feeds
2026 MCDBA Brasil.