quarta-feira, 30 de março de 2011

Quantos registros existem sua tabela no SQL Server?

Como identificar quantos registros existem em cada tabela no banco de dados do sql server?
Para isto utilizaremos: tabela temporária, view de sistema e cursor.

Obs:
Este script deve ser executado 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.


Script

            1- Criando tabela temporária
CREATE TABLE #TMP_CONTA_TABELA
(TABELA       VARCHAR(200),
 REGISTRO    INT)

2- 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

3- Identificando quantos registros tem em cada tabela.
SELECT * from #TMP_CONTA_TABELA ORDER BY 2 DESC

Resultado

TABELA                                  REGISTRO
---------------------------     -----------
TB_AUDITORIA                          267804
TB_COBRANCA                          191938
TB_CAD_CLIENTE                      118919
TB_CAD_PRODUTO                     86995

Fonte: Devmedia (Darci Leandro)
Abraço a todos ...

Nenhum comentário:

Postar um comentário