Encontre esto del Maestro Loria:

26/04/2007 - 17:38 por Alejandro.33.Chile | Informe spam
Uso SQL 2000
Esta es la rutina:
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


Me pregunta es alguno de los master podri indica un poco en detalle
que es cada columna ? esta en Bytes ?

De todas maneras esta la raja esta info, lo que necesitaba es
justamente lo que entiendo me entrega, el peso de todas las tablas de
una

Preguntas similare

Leer las respuestas

#1 Javier Loria
26/04/2007 - 18:34 | Informe spam
Hola Alejandro:
Dificillmente maestro, pero si un aprendiz asiduo que comparte sus
conocimientos ;)
Ese codigo fue "tomado" del procedimiento de sistema sp_spaced_used y
adaptado para que trabaje en conjuntos de datos y no fila por fila.
La mayoria de la informacion almacenada en sysindexes esta almacenada en
paginas, por eso se multiplican por 8 para obtener la informacion en Kbs.
Tambien vale la pena mencionar que no siempre esta sysindexes actualizada y
puede producir algunas diferencias con el numero de filas y hacer un
verdadero COUNT(*) sobre la tabla.
Normalmente lo uso, para encontrar las tablas grandes que deberian
optimizarse o eventualmente, (digamos las 20 mas grandes). Tambien para
buscar tablas que pueden estas sobreindexadas o subindexadas, sin que exista
un porcentaje fijo recomendado, simplemente si por ejemplo una tabla tiene
300% mas de espacio en indices que en datos, investigo con detalle cuales
indices tiene construidos. Por ultimo me siver para buscar cuales tablas
combinar en una estrategia de reorganizacion de indices, cuando no es
posible hacerlo para todos.
Saludos,


Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.



wrote in message
news:
Uso SQL 2000
Esta es la rutina:
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


Me pregunta es alguno de los master podri indica un poco en detalle
que es cada columna ? esta en Bytes ?

De todas maneras esta la raja esta info, lo que necesitaba es
justamente lo que entiendo me entrega, el peso de todas las tablas de
una

Respuesta Responder a este mensaje
#2 Alejandro.33.Chile
26/04/2007 - 23:01 | Informe spam
Muchas Gracias.
Para entender un poco mas me podrias indicas como lees esto : ? de
esta forma puedo entender mejor el tema.

name rows reserved data index_size unused
CMRFG 34900 52608 48648 3760 200
CMRFH 27427 71120 24064 41768 5288
CMRZ1 150829 50944 21608 28024 1312
CMRZ2 90409 21688 21480 104 104
CMRBF 24652 20680 9072 10704 904
CMRA2 17184 9280 8976 80 224

Al menos yo lo unico que entiendo es la 2da columna cantidad de
registros. Las demas no las se leer.

Agradecido.
Respuesta Responder a este mensaje
#3 Javier Loria
27/04/2007 - 00:35 | Informe spam
Hola:
La tabla CMRFG, tiene 34,900 filas. Estas estan consumiendo 52,608 Kb
(52 Mb) de espacio en total.
Del espacio anterior 48,648 Kb (48 Mb) son en datos (la propia fila);
3,760 Kb (3 Mb) en Indices. 200 Kb estan "reservados" y no estan siendo
usados.
Saludos,


Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.



wrote in message
news:
Muchas Gracias.
Para entender un poco mas me podrias indicas como lees esto : ? de
esta forma puedo entender mejor el tema.

name rows reserved data index_size unused
CMRFG 34900 52608 48648 3760 200
CMRFH 27427 71120 24064 41768 5288
CMRZ1 150829 50944 21608 28024 1312
CMRZ2 90409 21688 21480 104 104
CMRBF 24652 20680 9072 10704 904
CMRA2 17184 9280 8976 80 224

Al menos yo lo unico que entiendo es la 2da columna cantidad de
registros. Las demas no las se leer.

Agradecido.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida