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