Sempre quando você é acionado para atuar em algum banco de dados, é necessário fazer um levantamento como: versões instaladas; marca, modelo e capacidade de processador do servidor; memória disponível e utilizada, entre outras.

Neste artigo iremos identificar quantos registros existem em cada tabela no banco de dados e para isso utilizaremos: tabela temporária, view de sistema e cursor.

Atenção: Uma informação é muito importante neste momento, execute esse script no ambiente de produção somente em horários nos quais não existam muitos usuários conectados, pois, você poderá bloquear muitas conexões e gerar problemas de performance momentânea.

Criando tabela temporária


CREATE TABLE #TMP_CONTA_TABELA
 (TABELA VARCHAR(200),
 REGISTRO INT)

Inserindo dados na tabela temporária


DECLARE @COMANDO VARCHAR(500)
 DECLARE C_CountTable CURSOR FAST_FORWARD FOR
 SELECT distinct 
 'SELECT TABELA = ''' + SU.NAME + '.' + SO.NAME + '''
 , REGISTRO = COUNT(*) FROM ' + SU.NAME + '.' + SO.NAME 
 FROM SYSOBJECTS SO INNER JOIN SYSUSERS SU
 ON SO.UID = SU.UID
 AND SO.XTYPE = 'U'
 AND SO.NAME <> 'dtproperties'
 OPEN C_CountTable
 FETCH NEXT FROM C_CountTable
 INTO @COMANDO
  WHILE @@FETCH_STATUS = 0
  BEGIN 
 EXECUTE ('INSERT INTO #TMP_CONTA_TABELA '+ @COMANDO)
  FETCH NEXT FROM C_CountTable
  INTO @COMANDO
  END
 CLOSE C_CountTable
 DEALLOCATE C_CountTable

Identificando quantos registros tem em cada tabela


SELECT * from #TMP_CONTA_TABELA ORDER BY 2 DESC

Resultado


TABELAREGISTRO
 --------------------------- -----------
 TB_AUDITORIA 267804
 TB_ITEN_NOTA_FISCAL 239678
 TB_NOTA_FISCAL 233318
 TB_COBRANCA 191938
 TB_CAD_CLIENTE 118919
 TB_CAD_PRODUTO 86995
 TB_CAD_FORNECEDOR 68506
 TB_CAD_USUARIO 2345
 
 (8 row(s) affected)

Conclusão

Existem outras maneiras de você fazer esse levantamento sem utilizar o comando select count(*) porém as informações não serão tão precisas, pois utilizam-se de estatísticas que muitas vezes podem estar desatualizada. Neste artigo estamos contando os registros que estão neste exato momento nas páginas de dados, ou seja, valores reais e atuais.