none
Estatísca de crescimento por tabela RRS feed

  • Pergunta

  • Boa tarde pessoal,

    Eu tenho que mostrar uma estatística de crecimento do banco por tabela de todo meu banco de dados para minha diretoria

    Periram que eu informasse quantos registros são inseridos em cada tabela por dia

    Alguém sabe um forma que eu possa extrair essa informação?

     

    Desde de já agradeço,

     

    Fernando Willian de Souza Furtado

     


    Espero ter ajudado Fernando Willian de Souza Furtado Se útil, classifique!!!
    • Movido Gustavo Maia Aguiar quinta-feira, 14 de outubro de 2010 20:06 (De:Programação avançada com o SQL Server)
    quinta-feira, 14 de outubro de 2010 15:35

Todas as Respostas

  • Boa tarde Nando...

    Eu tenho esse script que pode te ajudar...


    CREATE TABLE #TEMP(
    	REC_ID			INT IDENTITY (1, 1),
    	TABLE_NAME		VARCHAR(128)  NULL,
    	NBR_OF_ROWS		INT	      NULL,
    	DATA_SPACE		DECIMAL(15,2) NULL,
    	INDEX_SPACE		DECIMAL(15,2) NULL,
    	TOTAL_SIZE		DECIMAL(15,5) NULL,
    	PERCENT_OF_DB	DECIMAL(15,5)         NULL,
    	DB_SIZE			DECIMAL(15,5) NULL
    ) 
    
    -- OBTÉM TODAS AS TABELAS, NOMES E RESPECTIVOS TAMANHOS
    EXEC SP_MSFOREACHTABLE @COMMAND1="INSERT INTO #TEMP(NBR_OF_ROWS, DATA_SPACE, INDEX_SPACE) EXEC SP_MSTABLESPACE '?'",
    @COMMAND2="UPDATE #TEMP SET TABLE_NAME = '?' WHERE REC_ID = (SELECT MAX(REC_ID) FROM #TEMP)"
    
    -- DEFINE O TAMANHO TOTAL E O TAMANHO TOTAL NO DATABASE
    UPDATE #TEMP
    SET TOTAL_SIZE = (DATA_SPACE + INDEX_SPACE)/1048576, DB_SIZE = (SELECT SUM(DATA_SPACE + INDEX_SPACE) FROM #TEMP)/1048576
    
    -- DEFINE O PERCENTUAL OCUPADO PELA TABELA DENTRO DA BASE
    UPDATE #TEMP
    SET PERCENT_OF_DB = (TOTAL_SIZE/DB_SIZE) * 100
    
    -- LISTA AS TABELAS
    SELECT 
    	REPLACE(REPLACE(UPPER(TABLE_NAME),'[',''),']','')			AS 'NOME DA TABELA',
    	NBR_OF_ROWS                             	AS 'NÚMERO DE LINHAS',
    	REPLACE(CONVERT(VARCHAR(255),(DATA_SPACE/1048576)),'.',',')+' GB'	AS 'TAMANHO DOS DADOS',
    	REPLACE(CONVERT(VARCHAR(255),(INDEX_SPACE/1048576)),'.',',')+' GB'	AS 'TAMANHO DOS ÍNDICES',
    	REPLACE(CONVERT(VARCHAR(255),(TOTAL_SIZE)),'.',',')+' GB'		AS 'TAMANHO TOTAL',
    	REPLACE(CONVERT(VARCHAR(255),(PERCENT_OF_DB)),'.',',')+' %'		AS 'PORCENTAGEM',
    	REPLACE(CONVERT(VARCHAR(255),(DB_SIZE)),'.',',')+' GB'			AS 'TAMANHO TOTAL DA BASE' 
    FROM #TEMP
    ORDER BY 2
    
    -- EXCLUI A TABELA TEMPORÁRIA 
    DROP TABLE #TEMP
    
    

    Att.
    Rafael Melo

     

    quinta-feira, 14 de outubro de 2010 17:47
  • Nando,

    Será que a system stored procedure sp_spaceused não seria útil?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    quinta-feira, 14 de outubro de 2010 18:11
    Moderador
  • Obrigado pela ajuda de todos...

    Me ajudaram bastante


    Espero ter ajudado Fernando Willian de Souza Furtado Se útil, classifique!!!
    quinta-feira, 14 de outubro de 2010 19:49