Existe uma maneira de obter um relatório ou criar um relatório personalizado no SQL Server 2012 que pode me atualizar com o espaço em disco disponível e o espaço em disco real para as unidades listadas duas vezes ou uma vez por dia.
Preciso disso porque meu cliente precisa ver o uso do espaço em disco ao longo de um mês para ver o padrão desejado.
Obrigado!
Escrevi relatórios e, na verdade, alertei com eles, para clientes monitorarem vários servidores em seus ambientes de teste e produção. Basicamente, usei um SQL Agent Job com uma etapa do PowerShell para extrair informações do disco (
win32_volume
) para algumas tabelas.Decidi então criar outra etapa do PowerShell que voltasse e verificasse se o espaço livre estava dentro de um limite configurado (armazenado em uma tabela). Escolhemos essa abordagem porque era mais fácil configurar e escrever rapidamente. Também era um código mais limpo para escrever um relatório HTML a ser enviado por e-mail, do que tentar fazê-lo em T-SQL.
Você tem DMVs no SQL Server para obter o uso do espaço em disco (por exemplo
sys.dm_os_volume_stats
), mas a opção PowerShell acima nos permitiu monitorar todas as unidades encontradas em um determinado servidor. Agora ressalva que você terá que criar uma conta proxy para a execução do PowerShell e essa conta deve ter as permissões apropriadas.Um exemplo de obtenção de um relatório HTML sobre o espaço livre em disco .
EDITAR
Acabei de perceber pelo comentário de Mike que eu tinha uma função em meu perfil, está escrito um pouco diferente do dele, mas foi exatamente isso que funcionou para mim:
Dê uma olhada na opção do coletor de dados. Especificamente, o conjunto de coleta Disk Usage. O coletor de dados permite agendar a coleta de vários tipos de informações (no seu caso, o uso do disco) e armazená-los em algo chamado Management DataWarehouse. Uma vez lá, é fácil consultar e/ou escrever relatórios sobre os dados. Isso faz parte do SQL Server 2008 e superior.
Se o conjunto de coleta de uso do disco integrado não tiver as informações necessárias, você também poderá criar seus próprios conjuntos de coleta. Nesse caso, você pode extrair informações usando sys.dm_io_virtual_file_stats (supondo que as unidades que você deseja tenham arquivos de banco de dados) ou algum outro código personalizado.
Aqui estão alguns links BOL para você começar.
Apresentando o coletor de dados
Coleção de dados
Monitoramento de desempenho do SQL Server com Data Collector
Esta não é uma resposta direta à sua pergunta, pois o que você deseja é uma análise de tendências, mas você deve se familiarizar com os relatórios do SSMS nos diferentes níveis de nó. Eles são muito melhorados em relação às versões anteriores. Há um no nível do banco de dados que mostra o tamanho das tabelas individuais.
Veja também o Management Data Warehouse.