Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
295
Assunto : SQL Server
Titulo: Identificando as maiores tabelas do seu banco

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



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 object_name(id),rowcnt,dpages*8 as tamanho from sysindexes
where indid in (1,0) and objectproperty(id,'isusertable')=1
order by rowcnt desc

Observe o order by para destacar as maiores tabelas. Além disso poderia ainda ser aplicada a instrução TOP neste select


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br