Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Exemplo interessante retirado da internet.
--Identificar o total de registros nas tabelas de um banco e consequentemente as tabelas que --possuem mais registros seria a principio uma tarefa complicada, devido a necessidade de --aplicar um count() em todas as tabelas e o tempo que tal count() levaria se as tabelas forem realmente grandes. --Uma forma simples de resolver o problema é aproveitar-se das tabelas de sistema : --a tabela sysindexes possui um campo chamado rowcnt que contém o número de linhas de cada --objeto registrado na sysindexes. De quebra temos ainda dpages, o total de paginas de dados da tabela. --A tabela sysindexes porem guarda uma linha para cada indice da tabela. Portanto devemos pegar apenas --as linhas referentes a tabela. Para isso devemos fazer 2 testes : O campo indid deve ser 0 ou 1, --valores referentes a tabela sem índice ou ao indice clustered. Devemos também nos aproveitar --da função OBJECTPROPERTY, que nos devolve o valor de uma propriedade de um objeto para garantirmos --que o objeto listado seja realmente uma tabela. --Veja como fica : select substring(object_name(id),1,30),rowcnt,dpages*8 as tamanho from sysindexes where indid in (1,0) and objectproperty(id,'isusertable')=1 order by rowcnt desc
Fonte/Autor/linkAUTOR: retirado da internet mas não me recordo o link. Caso alguém seja o autor favor postar o link para que os créditos possam ser atribuido.
Dúvidas, criticas, contribuições, correções e adições serão bem vindas.
jothaz, corrigindo este codigo, ele traz somente o tamanho dos indices.
Para verificar o tamanho das tabelas de uma database:
create table #temp ([name] varchar(1000), [rows] varchar(1000), [reserved] varchar(1000),
[data] varchar(1000),
[index_size] varchar(1000), [unsed] varchar(1000))
insert into #temp
EXEC sp_MSforeachTable @command1="print '>>>Tabela: ?' ",
@command2="sp_spaceused '?' "
select * from #temp
drop table #temp
Pode-se observar que utilizei a procedure sp_MSforeachTable que lista todas as tabelas de uma database.
Abçs