Please visit our sponsor
UNKNOWN
--**************************************
-- Name: Discovering a table size
-- Description:This procedure help you to discover what will be the table size with the records, so you can plan the database size.
-- By: Dennes Torres de Oliveira
--
--
-- Inputs:The input parameters are the table name and the expected number of records. The numbers of records must be entered with ".00" like 5000.00
--
-- Returns:The result is the size of a record, the number of records per page, total of pages, total of extensions and size of the table (in kb) when the table has the specified number of records
--
--Assumes:You will need to create this procedure in the master database of the server, so you can use it if all of your databases.
--
--Side Effects:This procedure still doesn't calc the size of index and fill factors of the table. It will be done in a later version.
--This code is copyrighted and has limited warranties.
--Please see http://www.Planet-Source-Code.com/xq/ASP/txtCodeId.260/lngWId.5/qx/vb/scripts/ShowCode.htm
--for details.
--**************************************
create procedure sp_calcsize @tab varchar(30),@numreg numeric(18,2) as
/* Copyright by Bufalo Informatica
http://www.bufaloinfo.com.br
this lines cann't be removed */
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