Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
63
Assunto : SQL Server
Titulo: Como Calcular o tamanho de uma tabela

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


Um problema comum dos administradores de bancos de dados é poderem precisar o quanto de espaço um determinado banco de dados irá gastar. O calculo de tamanho, conforme exposto no books on-line, é complexo e um DBA gastaria tempo de mais realizando esse calculo.

Para resolver o problema temos abaixo uma procedure (sp_calctamanho) que, recebendo o nome da tabela e o número de futuros registros calcula o tamanho que a tabela terá. Desta forma fica bem mais simples realizar o cálculo.

Para utilizar a procedure basta cria-la no MASTER e chama-la a partir de qualquer banco, como por exemplo :

sp_calctamanho customers,5000.00

Neste exemplo ela está sendo chamada a partir do northwind e irá calcular qual será o tamanho da tabela customers quando tiver 5000 registros. Observer o .00 após o 5000, é obrigatório para que não haja erro de cálculo.


Eis a procedure :

create procedure sp_calctamanho @tab varchar(30),@numreg numeric(18,2) as
/* Copyright by Bufalo Informatica
http://www.bufaloinfo.com.br
Livre reprodução, desde que essas linhas não sejam eliminadas */
declare @tottam int
declare @colfix int
declare @colvar int
declare @tamreg int
declare @regpag numeric(18,2)
declare @numpag int
declare @numext int
select @tottam=sum(length) from syscolumns a,sysobjects b where a.id=b.id
and b.name=@tab
select @colfix=count(*) from syscolumns a,sysobjects b,systypes c where
a.id=b.id and c.xusertype=a.xtype and b.name=@tab and variable<>1
select @colvar=count(*) from syscolumns a,sysobjects b,systypes c where
a.id=b.id and c.xusertype=a.xtype and b.name=@tab and variable=1
select @tamreg=@tottam + (@colvar*2) + convert(int,2+((@colfix+7)/8)) + 2 +
4
select @regpag=floor(8096.00/(@tamreg+2))
select @numpag=ceiling(@numreg/@regpag)
select @numext=ceiling(@numpag/8.00)
select 'tamanho do registro'=@tamreg,'Registros por página'=@regpag,
'Número de páginas'=@numpag,'Número de extensões'=@numext,'Espaço
total'=@numext*64

Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
data: 10/23/2012 8:57:00 AM
nome: Liliam
email: liliam.leme@gmail.com
comentário:
Mto bom! Me ajudou!

 1  
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