Tamaño de Tablas en SQL 2000???

11/03/2005 - 14:58 por Maxi | Informe spam
Hola a todos!!!!
Tengo una BD en SQL Server 2000 la cual es utilizada por varios clientes,
necesito saber el TAMAÑO O PORCENTAJE de utilizacion de tablas de cada
cliente.
Supongo que haciendo una consulta para un cliente especifico me devuelve la
cantidad de registros que estan involucrados, pero como obtengo ese tamaño o
porcentaje fisico en forma automatica?.
Si me tengo que poner a hacerlo en forma manual, es bastante tedioso. Existe
alguna herramienta o componente externo que me sirva para esto???
Gracias.!!!!

Preguntas similare

Leer las respuestas

#6 Isaías
11/03/2005 - 16:50 | Informe spam
"Maxis"

Javier Loria, hace poco publico una rutina que da la
información de las tablas, espero sirva:

select sysobjects.name
, sum(case when sysindexes.indid<2 then rows
else 0 end) as rows
, sum(case when sysindexes.indid in (0,1,255) then
sysindexes.reserved
else 0 end) * 8 as reserved
, sum(case when sysindexes.indid in (0,1) then
sysindexes.dpages
when sysindexes.indid%5 then sysindexes.used
else 0 end) * 8 as Data
, (sum(case when sysindexes.indid in (0,1,255) then
sysindexes.used
else 0 end)
- sum(case when sysindexes.indid in (0,1) then
sysindexes.dpages
when sysindexes.indid%5 then sysindexes.used
else 0 end))*8 as index_size
, (sum(case when sysindexes.indid in (0,1,255) then
sysindexes.reserved-sysindexes.used
else 0 end)*8) as unused
from sysobjects
join sysindexes
on sysobjects.id=sysindexes.id
where xtype='U'
group by sysobjects.name
order by 2 desc
#7 qwalgrande
11/03/2005 - 16:53 | Informe spam
Hola.

Para calcular el peso de un registro en una tabla tienes que sumar byte a
byte lo que ocupa cada campo de la tabla. A saber, si tienes un campo int,
4, si tienes un campo varchar(10), suponemos que se llena la mitad, 5 bytes,
si tienes un campo nchar(20), pues 40. Y así con todo. Si hay una tabla
relacionada que por cada registro en la tabla maestra tiene de media 2,5
registros, multiplicas. Así hasta llegar al peso de un usuario o consulta o,
en general, entidad que debas ponderar.

qwalgrande


"Maxi" wrote in message
news:
Gracias, es una forma de poder hacero bastante buena.
Pero como puedo hacer para calcular el tamaño medio de una" Consulta
Relacionada de Varias Tablas",
ya que es fundamental para poder calcular todo lo demas.
Alguna idea???
Gracias!!!!!!

"qwalgrande" escribió en el mensaje
news:
Mostrar la cita
#8 Maxi
11/03/2005 - 16:53 | Informe spam
Claro, es valida la consulta pero para una solo tabla, si necesito unir
varias Tablas, como obtengo el valor????
Alguna idea???
Saludos.-


"Maxi" escribió en el mensaje
news:
Mostrar la cita
#9 Maxi
11/03/2005 - 17:18 | Informe spam
Pues solo debes hacer un UNION, tenes algun mini ejemplo de las tablas para
poder armarte algo?


Salu2
Maxi


"Maxi" escribió en el mensaje
news:epY%
Mostrar la cita
#10 Alejandro Mesa
11/03/2005 - 18:29 | Informe spam
Maxi,

Creo que deberiamos buscar otra forma, pues el numero de filas no es
proporcional al tamaño. En el ejemplo que esta a continuacion, la tabla t3
tiene 2 grupos representados en colA (1 y 2) y cada grupo tiene 2 filas que
equivalen al 50% del total, pero a simple vista se puede ver que el tamanio
ocupado por cada grupo no es igual.

Ejemplo:

use northwind
go

create table t1 (
colA int not null,
colB varchar(8000)
)
go

create table t2 (
colA int not null,
colB varchar(8000)
)
go

insert into t1 values (1, replicate('a', 8000))
insert into t1 values (1, replicate('b', 8000))

insert into t2 values (2, 'a')
insert into t2 values (2, 'b')

select
colA, colB
into t3
from t1

insert into t3
select colA, colB
from t2
go

exec sp_spaceused t1
exec sp_spaceused t2
exec sp_spaceused t3
go

drop table t1, t2, t3
go


AMB


"Maxi" wrote:

Mostrar la cita
Ads by Google
Search Busqueda sugerida