Discussion:
Tamaño de Tablas en SQL 2000???
(demasiado antiguo para responder)
Maxi
2005-03-11 13:58:35 UTC
Permalink
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.!!!!
Maxi
2005-03-11 14:11:48 UTC
Permalink
Hola, tocayo, podes usar sp_spaceused, revisa lo BOL que veras la sintaxis
:-)
--
--------------------------
Salu2
Maxi
Post by Maxi
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.!!!!
Maxi
2005-03-11 14:50:09 UTC
Permalink
Gracias, tocayo!!!
La funcion sp_spaceused sirve solo para una Tabla o toda la BD completa,
el tema que necesito saber para un grupo de registros de esa tabla cuanto
espacio ocupa
, o sea si efectuo un Select y me trae 1000 registros y en total hay 10000
entonces
deberia, de alguna manera decirme que ocupa un 10% de la Tabla y x MB o GB
de tamaño.
Alguna idea????
Post by Maxi
Hola, tocayo, podes usar sp_spaceused, revisa lo BOL que veras la sintaxis
:-)
--
--------------------------
Salu2
Maxi
Post by Maxi
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.!!!!
Maxi
2005-03-11 14:59:58 UTC
Permalink
mmmm, no te es util en porcentaje de la tabla? o sea que esos registros
ocupan el 15% del total de los registros?

de ser asi solo deberias hacer algo como esto

SELECT 100.0 * (1.0 * COUNT(*) / (SELECT COUNT(*) FROM TABLA))
FROM TABLA
WHERE ....
--
--------------------------
Salu2
Maxi
Post by Maxi
Gracias, tocayo!!!
La funcion sp_spaceused sirve solo para una Tabla o toda la BD completa,
el tema que necesito saber para un grupo de registros de esa tabla cuanto
espacio ocupa
, o sea si efectuo un Select y me trae 1000 registros y en total hay 10000
entonces
deberia, de alguna manera decirme que ocupa un 10% de la Tabla y x MB o GB
de tamaño.
Alguna idea????
Post by Maxi
Hola, tocayo, podes usar sp_spaceused, revisa lo BOL que veras la
sintaxis :-)
--
--------------------------
Salu2
Maxi
Post by Maxi
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.!!!!
Isaías
2005-03-11 15:50:23 UTC
Permalink
"Maxis"

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

-- Obtener el tamaño de una tabla (Javier Loria)
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=255 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=255 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
Maxi
2005-03-11 15:53:49 UTC
Permalink
Claro, es valida la consulta pero para una solo tabla, si necesito unir
varias Tablas, como obtengo el valor????
Alguna idea???
Saludos.-
Post by Maxi
mmmm, no te es util en porcentaje de la tabla? o sea que esos registros
ocupan el 15% del total de los registros?
de ser asi solo deberias hacer algo como esto
SELECT 100.0 * (1.0 * COUNT(*) / (SELECT COUNT(*) FROM TABLA))
FROM TABLA
WHERE ....
--
--------------------------
Salu2
Maxi
Post by Maxi
Gracias, tocayo!!!
La funcion sp_spaceused sirve solo para una Tabla o toda la BD completa,
el tema que necesito saber para un grupo de registros de esa tabla cuanto
espacio ocupa
, o sea si efectuo un Select y me trae 1000 registros y en total hay
10000 entonces
deberia, de alguna manera decirme que ocupa un 10% de la Tabla y x MB o
GB de tamaño.
Alguna idea????
Post by Maxi
Hola, tocayo, podes usar sp_spaceused, revisa lo BOL que veras la
sintaxis :-)
--
--------------------------
Salu2
Maxi
Post by Maxi
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.!!!!
Maxi
2005-03-11 16:18:18 UTC
Permalink
Pues solo debes hacer un UNION, tenes algun mini ejemplo de las tablas para
poder armarte algo?
--
--------------------------
Salu2
Maxi
Post by Maxi
Claro, es valida la consulta pero para una solo tabla, si necesito unir
varias Tablas, como obtengo el valor????
Alguna idea???
Saludos.-
Post by Maxi
mmmm, no te es util en porcentaje de la tabla? o sea que esos registros
ocupan el 15% del total de los registros?
de ser asi solo deberias hacer algo como esto
SELECT 100.0 * (1.0 * COUNT(*) / (SELECT COUNT(*) FROM TABLA))
FROM TABLA
WHERE ....
--
--------------------------
Salu2
Maxi
Post by Maxi
Gracias, tocayo!!!
La funcion sp_spaceused sirve solo para una Tabla o toda la BD completa,
el tema que necesito saber para un grupo de registros de esa tabla
cuanto espacio ocupa
, o sea si efectuo un Select y me trae 1000 registros y en total hay
10000 entonces
deberia, de alguna manera decirme que ocupa un 10% de la Tabla y x MB o
GB de tamaño.
Alguna idea????
Post by Maxi
Hola, tocayo, podes usar sp_spaceused, revisa lo BOL que veras la
sintaxis :-)
--
--------------------------
Salu2
Maxi
Post by Maxi
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.!!!!
Alejandro Mesa
2005-03-11 17:29:06 UTC
Permalink
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
Post by Maxi
Pues solo debes hacer un UNION, tenes algun mini ejemplo de las tablas para
poder armarte algo?
--
--------------------------
Salu2
Maxi
Post by Maxi
Claro, es valida la consulta pero para una solo tabla, si necesito unir
varias Tablas, como obtengo el valor????
Alguna idea???
Saludos.-
Post by Maxi
mmmm, no te es util en porcentaje de la tabla? o sea que esos registros
ocupan el 15% del total de los registros?
de ser asi solo deberias hacer algo como esto
SELECT 100.0 * (1.0 * COUNT(*) / (SELECT COUNT(*) FROM TABLA))
FROM TABLA
WHERE ....
--
--------------------------
Salu2
Maxi
Post by Maxi
Gracias, tocayo!!!
La funcion sp_spaceused sirve solo para una Tabla o toda la BD completa,
el tema que necesito saber para un grupo de registros de esa tabla
cuanto espacio ocupa
, o sea si efectuo un Select y me trae 1000 registros y en total hay
10000 entonces
deberia, de alguna manera decirme que ocupa un 10% de la Tabla y x MB o
GB de tamaño.
Alguna idea????
Post by Maxi
Hola, tocayo, podes usar sp_spaceused, revisa lo BOL que veras la
sintaxis :-)
--
--------------------------
Salu2
Maxi
Post by Maxi
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.!!!!
Alejandro Mesa
2005-03-11 17:53:04 UTC
Permalink
Maxi,

Al parecer fui yo quien mal entendio la solucion. Te referias solo al
porciento de filas que ocupa ese cliente en la tabla. Pense que querias
aplicar ese porciento al tamanio. Como decimos por aca, sorry.


AMB
Post by Alejandro Mesa
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.
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
Post by Maxi
Pues solo debes hacer un UNION, tenes algun mini ejemplo de las tablas para
poder armarte algo?
--
--------------------------
Salu2
Maxi
Post by Maxi
Claro, es valida la consulta pero para una solo tabla, si necesito unir
varias Tablas, como obtengo el valor????
Alguna idea???
Saludos.-
Post by Maxi
mmmm, no te es util en porcentaje de la tabla? o sea que esos registros
ocupan el 15% del total de los registros?
de ser asi solo deberias hacer algo como esto
SELECT 100.0 * (1.0 * COUNT(*) / (SELECT COUNT(*) FROM TABLA))
FROM TABLA
WHERE ....
--
--------------------------
Salu2
Maxi
Post by Maxi
Gracias, tocayo!!!
La funcion sp_spaceused sirve solo para una Tabla o toda la BD completa,
el tema que necesito saber para un grupo de registros de esa tabla
cuanto espacio ocupa
, o sea si efectuo un Select y me trae 1000 registros y en total hay
10000 entonces
deberia, de alguna manera decirme que ocupa un 10% de la Tabla y x MB o
GB de tamaño.
Alguna idea????
Post by Maxi
Hola, tocayo, podes usar sp_spaceused, revisa lo BOL que veras la
sintaxis :-)
--
--------------------------
Salu2
Maxi
Post by Maxi
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.!!!!
Maxi
2005-03-11 18:05:08 UTC
Permalink
:-) aca decimos que cuando pasan estas cosas se debe invitar una cerveza :-p
--
--------------------------
Salu2
Maxi
Post by Alejandro Mesa
Maxi,
Al parecer fui yo quien mal entendio la solucion. Te referias solo al
porciento de filas que ocupa ese cliente en la tabla. Pense que querias
aplicar ese porciento al tamanio. Como decimos por aca, sorry.
AMB
Post by Alejandro Mesa
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.
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
Post by Maxi
Pues solo debes hacer un UNION, tenes algun mini ejemplo de las tablas para
poder armarte algo?
--
--------------------------
Salu2
Maxi
Post by Maxi
Claro, es valida la consulta pero para una solo tabla, si necesito unir
varias Tablas, como obtengo el valor????
Alguna idea???
Saludos.-
Post by Maxi
mmmm, no te es util en porcentaje de la tabla? o sea que esos registros
ocupan el 15% del total de los registros?
de ser asi solo deberias hacer algo como esto
SELECT 100.0 * (1.0 * COUNT(*) / (SELECT COUNT(*) FROM TABLA))
FROM TABLA
WHERE ....
--
--------------------------
Salu2
Maxi
Post by Maxi
Gracias, tocayo!!!
La funcion sp_spaceused sirve solo para una Tabla o toda la BD completa,
el tema que necesito saber para un grupo de registros de esa tabla
cuanto espacio ocupa
, o sea si efectuo un Select y me trae 1000 registros y en total hay
10000 entonces
deberia, de alguna manera decirme que ocupa un 10% de la Tabla y x MB o
GB de tamaño.
Alguna idea????
Post by Maxi
Hola, tocayo, podes usar sp_spaceused, revisa lo BOL que veras la
sintaxis :-)
--
--------------------------
Salu2
Maxi
Post by Maxi
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.!!!!
Alejandro Mesa
2005-03-11 19:03:02 UTC
Permalink
Maxi,

Pues quedas convidado.


AMB
Post by Maxi
:-) aca decimos que cuando pasan estas cosas se debe invitar una cerveza :-p
--
--------------------------
Salu2
Maxi
Post by Alejandro Mesa
Maxi,
Al parecer fui yo quien mal entendio la solucion. Te referias solo al
porciento de filas que ocupa ese cliente en la tabla. Pense que querias
aplicar ese porciento al tamanio. Como decimos por aca, sorry.
AMB
Post by Alejandro Mesa
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.
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
Post by Maxi
Pues solo debes hacer un UNION, tenes algun mini ejemplo de las tablas para
poder armarte algo?
--
--------------------------
Salu2
Maxi
Post by Maxi
Claro, es valida la consulta pero para una solo tabla, si necesito unir
varias Tablas, como obtengo el valor????
Alguna idea???
Saludos.-
Post by Maxi
mmmm, no te es util en porcentaje de la tabla? o sea que esos registros
ocupan el 15% del total de los registros?
de ser asi solo deberias hacer algo como esto
SELECT 100.0 * (1.0 * COUNT(*) / (SELECT COUNT(*) FROM TABLA))
FROM TABLA
WHERE ....
--
--------------------------
Salu2
Maxi
Post by Maxi
Gracias, tocayo!!!
La funcion sp_spaceused sirve solo para una Tabla o toda la BD completa,
el tema que necesito saber para un grupo de registros de esa tabla
cuanto espacio ocupa
, o sea si efectuo un Select y me trae 1000 registros y en total hay
10000 entonces
deberia, de alguna manera decirme que ocupa un 10% de la Tabla y x MB o
GB de tamaño.
Alguna idea????
Post by Maxi
Hola, tocayo, podes usar sp_spaceused, revisa lo BOL que veras la
sintaxis :-)
--
--------------------------
Salu2
Maxi
Post by Maxi
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.!!!!
Maxi
2005-03-11 20:41:44 UTC
Permalink
Gracias a todos y como decimos por aca, cuando quieran tomamos unas
"Birras"( por aca o por mi Barrio se dice asi).
Saludos!!!!!
Post by Alejandro Mesa
Maxi,
Pues quedas convidado.
AMB
Post by Maxi
:-) aca decimos que cuando pasan estas cosas se debe invitar una cerveza :-p
--
--------------------------
Salu2
Maxi
Post by Alejandro Mesa
Maxi,
Al parecer fui yo quien mal entendio la solucion. Te referias solo al
porciento de filas que ocupa ese cliente en la tabla. Pense que querias
aplicar ese porciento al tamanio. Como decimos por aca, sorry.
AMB
Post by Alejandro Mesa
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.
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
Post by Maxi
Pues solo debes hacer un UNION, tenes algun mini ejemplo de las
tablas
para
poder armarte algo?
--
--------------------------
Salu2
Maxi
Post by Maxi
Claro, es valida la consulta pero para una solo tabla, si necesito unir
varias Tablas, como obtengo el valor????
Alguna idea???
Saludos.-
Post by Maxi
mmmm, no te es util en porcentaje de la tabla? o sea que esos registros
ocupan el 15% del total de los registros?
de ser asi solo deberias hacer algo como esto
SELECT 100.0 * (1.0 * COUNT(*) / (SELECT COUNT(*) FROM TABLA))
FROM TABLA
WHERE ....
--
--------------------------
Salu2
Maxi
Post by Maxi
Gracias, tocayo!!!
La funcion sp_spaceused sirve solo para una Tabla o toda la BD
completa,
el tema que necesito saber para un grupo de registros de esa tabla
cuanto espacio ocupa
, o sea si efectuo un Select y me trae 1000 registros y en total hay
10000 entonces
deberia, de alguna manera decirme que ocupa un 10% de la Tabla y
x
MB o
GB de tamaño.
Alguna idea????
Post by Maxi
Hola, tocayo, podes usar sp_spaceused, revisa lo BOL que veras la
sintaxis :-)
--
--------------------------
Salu2
Maxi
Post by Maxi
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.!!!!
Maxi
2005-03-11 20:53:14 UTC
Permalink
jaja por mi barrio se dice lo mismo :-), al final que opcion va a usar
tocayo
--
--------------------------
Salu2
Maxi
Post by Maxi
Gracias a todos y como decimos por aca, cuando quieran tomamos unas
"Birras"( por aca o por mi Barrio se dice asi).
Saludos!!!!!
Post by Alejandro Mesa
Maxi,
Pues quedas convidado.
AMB
Post by Maxi
:-) aca decimos que cuando pasan estas cosas se debe invitar una cerveza :-p
--
--------------------------
Salu2
Maxi
Post by Alejandro Mesa
Maxi,
Al parecer fui yo quien mal entendio la solucion. Te referias solo al
porciento de filas que ocupa ese cliente en la tabla. Pense que querias
aplicar ese porciento al tamanio. Como decimos por aca, sorry.
AMB
Post by Alejandro Mesa
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.
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
Post by Maxi
Pues solo debes hacer un UNION, tenes algun mini ejemplo de las
tablas
para
poder armarte algo?
--
--------------------------
Salu2
Maxi
Post by Maxi
Claro, es valida la consulta pero para una solo tabla, si
necesito
unir
varias Tablas, como obtengo el valor????
Alguna idea???
Saludos.-
Post by Maxi
mmmm, no te es util en porcentaje de la tabla? o sea que esos registros
ocupan el 15% del total de los registros?
de ser asi solo deberias hacer algo como esto
SELECT 100.0 * (1.0 * COUNT(*) / (SELECT COUNT(*) FROM TABLA))
FROM TABLA
WHERE ....
--
--------------------------
Salu2
Maxi
Post by Maxi
Gracias, tocayo!!!
La funcion sp_spaceused sirve solo para una Tabla o toda la BD
completa,
el tema que necesito saber para un grupo de registros de esa tabla
cuanto espacio ocupa
, o sea si efectuo un Select y me trae 1000 registros y en
total
hay
10000 entonces
deberia, de alguna manera decirme que ocupa un 10% de la Tabla
y x
MB o
GB de tamaño.
Alguna idea????
Post by Maxi
Hola, tocayo, podes usar sp_spaceused, revisa lo BOL que veras la
sintaxis :-)
--
--------------------------
Salu2
Maxi
Post by Maxi
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.!!!!
qwalgrande
2005-03-11 14:42:57 UTC
Permalink
Hola.

Yo me encontrado alguna vez ante esta misma pregunta "cuánto ocupa cada país
del total de la base de datos", cuyo fin es cobrarles la parte porcentual
del hosting o cobrarles una posible ampliación de disco a dichos clientes.
Hazlo como veas, pero yo trataría de hacer el siguiente cálculo aproximado:
- Calculas el tamaño de un registro "normal" de un usuario y sus tablas
relacionadas de un cliente normal (con el peso de cada columna y de todas
las tablas en las que "normalmente" está un cliente). Con ello obtienes el
peso medio de un registro.
- Recuentas los registros que tienes de cada cliente y lo que supone en
porcentaje usando una tabla de refencia (tabla de usuarios o tabla de
facturas, no sé depende de lo que estés manejando). Con eso, multiplicas
usuarios de cada país por el peso medio de un usuario y sus relaciones.
- Con las tablas auxiliares que son comunes (países, provincias, etc),
sumas lo que ocupan usando sp_spaceused y lo divides como veas, bien
porcentualmente o bien de forma ponderada conforme al % de cada cliente.

Así obtienes unas cifras que son una aproximación, pero que no es una mala
aproximación. Querer ir más allá es un trabajo artesanal y de chinos que te
puede llevar semanas o meses. En cualquier caso, suerte.
--
qwalgrande


"Maxi" <***@aquiles.com.ar> wrote in message news:***@TK2MSFTNGP14.phx.gbl...
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.!!!!
Maxi
2005-03-11 15:48:51 UTC
Permalink
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!!!!!!
Post by qwalgrande
Hola.
Yo me encontrado alguna vez ante esta misma pregunta "cuánto ocupa cada país
del total de la base de datos", cuyo fin es cobrarles la parte porcentual
del hosting o cobrarles una posible ampliación de disco a dichos clientes.
- Calculas el tamaño de un registro "normal" de un usuario y sus tablas
relacionadas de un cliente normal (con el peso de cada columna y de todas
las tablas en las que "normalmente" está un cliente). Con ello obtienes el
peso medio de un registro.
- Recuentas los registros que tienes de cada cliente y lo que supone en
porcentaje usando una tabla de refencia (tabla de usuarios o tabla de
facturas, no sé depende de lo que estés manejando). Con eso, multiplicas
usuarios de cada país por el peso medio de un usuario y sus relaciones.
- Con las tablas auxiliares que son comunes (países, provincias, etc),
sumas lo que ocupan usando sp_spaceused y lo divides como veas, bien
porcentualmente o bien de forma ponderada conforme al % de cada cliente.
Así obtienes unas cifras que son una aproximación, pero que no es una mala
aproximación. Querer ir más allá es un trabajo artesanal y de chinos que te
puede llevar semanas o meses. En cualquier caso, suerte.
--
qwalgrande
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.!!!!
qwalgrande
2005-03-11 15:53:20 UTC
Permalink
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" <***@aquiles.com.ar> wrote in message news:***@TK2MSFTNGP15.phx.gbl...
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!!!!!!
Post by qwalgrande
Hola.
Yo me encontrado alguna vez ante esta misma pregunta "cuánto ocupa cada país
del total de la base de datos", cuyo fin es cobrarles la parte porcentual
del hosting o cobrarles una posible ampliación de disco a dichos clientes.
- Calculas el tamaño de un registro "normal" de un usuario y sus tablas
relacionadas de un cliente normal (con el peso de cada columna y de todas
las tablas en las que "normalmente" está un cliente). Con ello obtienes el
peso medio de un registro.
- Recuentas los registros que tienes de cada cliente y lo que supone en
porcentaje usando una tabla de refencia (tabla de usuarios o tabla de
facturas, no sé depende de lo que estés manejando). Con eso, multiplicas
usuarios de cada país por el peso medio de un usuario y sus relaciones.
- Con las tablas auxiliares que son comunes (países, provincias, etc),
sumas lo que ocupan usando sp_spaceused y lo divides como veas, bien
porcentualmente o bien de forma ponderada conforme al % de cada cliente.
Así obtienes unas cifras que son una aproximación, pero que no es una mala
aproximación. Querer ir más allá es un trabajo artesanal y de chinos que te
puede llevar semanas o meses. En cualquier caso, suerte.
--
qwalgrande
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.!!!!
Gustavo Larriera [MVP]
2005-03-11 17:42:24 UTC
Permalink
He estado siguiendo con interes este hilo.

En mi opinion primero habria que definir con claridad como se quiere
medir el uso, creo que hasta que no se determine esto, la discusion no
lleva a ningun punto.

Se han mencionado dos formas:

1. Medir los bytes asignados al usuario.

2. Medir la cantidad de registros en las diversas tablas, asignados al
usuario.

Cuál es la que se quiere usar?

--
Gustavo Larriera
Uruguay LatAm
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Blog: http://sqljunkies.com/weblog/gux/
--
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and
confers no rights.
--
Post by Maxi
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!!!!!!
Post by qwalgrande
Hola.
Yo me encontrado alguna vez ante esta misma pregunta "cuánto ocupa cada
país
del total de la base de datos", cuyo fin es cobrarles la parte porcentual
del hosting o cobrarles una posible ampliación de disco a dichos clientes.
- Calculas el tamaño de un registro "normal" de un usuario y sus tablas
relacionadas de un cliente normal (con el peso de cada columna y de todas
las tablas en las que "normalmente" está un cliente). Con ello obtienes el
peso medio de un registro.
- Recuentas los registros que tienes de cada cliente y lo que supone en
porcentaje usando una tabla de refencia (tabla de usuarios o tabla de
facturas, no sé depende de lo que estés manejando). Con eso, multiplicas
usuarios de cada país por el peso medio de un usuario y sus
relaciones.
- Con las tablas auxiliares que son comunes (países, provincias, etc),
sumas lo que ocupan usando sp_spaceused y lo divides como veas, bien
porcentualmente o bien de forma ponderada conforme al % de cada cliente.
Así obtienes unas cifras que son una aproximación, pero que no es una mala
aproximación. Querer ir más allá es un trabajo artesanal y de chinos que
te
puede llevar semanas o meses. En cualquier caso, suerte.
--
qwalgrande
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.!!!!
Continúe leyendo en narkive:
Loading...