none
Ferramenta para Monitorar Tamanho do Banco, Tabelas e Índices RRS feed

  • Pergunta

  • Olá.

    Estou a procura de uma ferramenta que disponibilize, de uma maneira simples de visualizar, o tamanho de todas as tabelas e seus índices.

    Apesar do SQL Server disponibilizar algo do tipo, é necessário selecionar tabela por tabela. A informação disponibilizada do total de espaço de todos os índices de uma tabela também não adianta, pois gostaria de saber quais índices estão ocupando maior espaço.

    Fiz uma busca razoavelmente completa na internet mas não consegui encontrar nada do tipo. Alguém conhece alguma ferramenta (free ou não) que faça algo do tipo?

    Obrigado desde já. []s.

    José Filipe
    quinta-feira, 16 de agosto de 2007 16:02

Respostas

  • Boa tarde.

    Você já tentou fazer por consulta no banco?

    Existem vários scripts no fórum, porém um deles que eu utilizo muito é este:

    CREATE TABLE #Resumo (
        Tabela NVARCHAR(128),
        Linhas CHAR(11),
        Tamanho_Full_Tabela VARCHAR(18),
        Tamanho_Apenas_Dados VARCHAR(18),
        Tamanho_Apenas_Index VARCHAR(18),
        Tamanho_Livre VARCHAR(18))

    DECLARE @Tabela NVARCHAR(128)

    DECLARE Tabelas CURSOR
    FAST_FORWARD FOR
    SELECT TABLE_SCHEMA + '.' + TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_TYPE = 'BASE TABLE'

    OPEN Tabelas

    FETCH NEXT FROM Tabelas INTO @Tabela

    WHILE @@FETCH_STATUS = 0
    BEGIN
        INSERT INTO #Resumo EXEC sp_spaceused @Tabela
        FETCH NEXT FROM Tabelas INTO @Tabela    
    END

    CLOSE Tabelas

    DEALLOCATE Tabelas

    SELECT Tabela, Linhas, Tamanho_Full_Tabela, Tamanho_Apenas_Dados, Tamanho_Apenas_Index, Tamanho_Livre FROM #Resumo

    DROP TABLE #Resumo



    Luiz Fernando Lima - MCTS SQL Server - Microsoft Partner



    segunda-feira, 9 de abril de 2018 20:24

Todas as Respostas

  • Boa tarde.

    Você já tentou fazer por consulta no banco?

    Existem vários scripts no fórum, porém um deles que eu utilizo muito é este:

    CREATE TABLE #Resumo (
        Tabela NVARCHAR(128),
        Linhas CHAR(11),
        Tamanho_Full_Tabela VARCHAR(18),
        Tamanho_Apenas_Dados VARCHAR(18),
        Tamanho_Apenas_Index VARCHAR(18),
        Tamanho_Livre VARCHAR(18))

    DECLARE @Tabela NVARCHAR(128)

    DECLARE Tabelas CURSOR
    FAST_FORWARD FOR
    SELECT TABLE_SCHEMA + '.' + TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_TYPE = 'BASE TABLE'

    OPEN Tabelas

    FETCH NEXT FROM Tabelas INTO @Tabela

    WHILE @@FETCH_STATUS = 0
    BEGIN
        INSERT INTO #Resumo EXEC sp_spaceused @Tabela
        FETCH NEXT FROM Tabelas INTO @Tabela    
    END

    CLOSE Tabelas

    DEALLOCATE Tabelas

    SELECT Tabela, Linhas, Tamanho_Full_Tabela, Tamanho_Apenas_Dados, Tamanho_Apenas_Index, Tamanho_Livre FROM #Resumo

    DROP TABLE #Resumo



    Luiz Fernando Lima - MCTS SQL Server - Microsoft Partner



    segunda-feira, 9 de abril de 2018 20:24
  • Boa tarde.

    Você já tentou fazer por consulta no banco?

    Existem vários scripts no fórum, porém um deles que eu utilizo muito é este:

    CREATE TABLE #Resumo (
        Tabela NVARCHAR(128),
        Linhas CHAR(11),
        Tamanho_Full_Tabela VARCHAR(18),
        Tamanho_Apenas_Dados VARCHAR(18),
        Tamanho_Apenas_Index VARCHAR(18),
        Tamanho_Livre VARCHAR(18))

    DECLARE @Tabela NVARCHAR(128)

    DECLARE Tabelas CURSOR
    FAST_FORWARD FOR
    SELECT TABLE_SCHEMA + '.' + TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_TYPE = 'BASE TABLE'

    OPEN Tabelas

    FETCH NEXT FROM Tabelas INTO @Tabela

    WHILE @@FETCH_STATUS = 0
    BEGIN
        INSERT INTO #Resumo EXEC sp_spaceused @Tabela
        FETCH NEXT FROM Tabelas INTO @Tabela    
    END

    CLOSE Tabelas

    DEALLOCATE Tabelas

    SELECT Tabela, Linhas, Tamanho_Full_Tabela, Tamanho_Apenas_Dados, Tamanho_Apenas_Index, Tamanho_Livre FROM #Resumo

    DROP TABLE #Resumo



    Luiz Fernando Lima - MCTS SQL Server - Microsoft Partner



    JFNeis,

    Com base neste código, você poderá implementar um job que será executado de tempos em tempos fazendo justamente o monitoramento e identificando do crescimento do seu ambiente.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    terça-feira, 10 de abril de 2018 12:18
    Moderador