Tamaño de las tablas en una base de datos

02/03/2005 - 00:04 por Francisco Flamenco | Informe spam
Alguien cuenta con una consulta para conocer el tamaño de las tablas de una
base de datos (no el sp_spaceused, sino una consulta de las tablas y su
tamaño).

De antemano muchas gracias por su atención.

Preguntas similare

Leer las respuestas

#6 Alejandro Mesa
02/03/2005 - 15:47 | Informe spam
Correccion,

cast(left(reserved, charindex(' ', unused) - 1) as int)



cast(left(reserved, charindex(' ', reserved) - 1) as int)


AMB


"Alejandro Mesa" wrote:

Francisco,

Puedes crear una tabla temporal para almacenar el resultado del
procedimiento almacenado sp_spaceused. Este procedimineto lo ejecutarias por
cada tabla de la base de datos y para ello puedes usar el procedimiento no
documentado sp_msforeachtable (no lo recominedo) o crear un cursor para traer
el nombre de las tablas.

Ejemplo:

use northwind
go

create table #t (
table_name sysname,
rows_cnt int,
reserved varchar(25),
data varchar(25),
index_size varchar(25),
unused varchar(25)
)

insert into #t
execute sp_msforeachtable 'execute sp_spaceused [?]'

select
*
from
#t
order by
cast(left(reserved, charindex(' ', unused) - 1) as int) desc

truncate table #t

declare @tn sysname
declare tables_cursor cursor
local
fast_forward
for
select
table_name
from
information_schema.tables
where
table_type = 'base table'

open tables_cursor

while 1 = 1
begin
fetch next from tables_cursor into @tn

if @@error != 0 or @@fetch_status != 0 break

insert into #t
exec('execute sp_spaceused ''' + @tn + '''')
end

close tables_cursor
deallocate tables_cursor

select
*
from
#t
order by
cast(left(unused, charindex(' ', unused) - 1) as int) desc

drop table #t
go

No te recomiendo el acceso directo a las tablas de sistema o el uso de
formulas que son propietarias de Microsoft y las cuales pueden ser cambiadas
sin previo aviso (lo mismo con sp_msforeachtable).


AMB

"Francisco Flamenco" wrote:

> Alguien cuenta con una consulta para conocer el tamaño de las tablas de una
> base de datos (no el sp_spaceused, sino una consulta de las tablas y su
> tamaño).
>
> De antemano muchas gracias por su atención.
>
>
>
>
Respuesta Responder a este mensaje
#7 Francisco Flamenco
03/03/2005 - 16:21 | Informe spam
Gracias!!

"Alejandro Mesa" escribió en el
mensaje news:
Correccion,

cast(left(reserved, charindex(' ', unused) - 1) as int)



cast(left(reserved, charindex(' ', reserved) - 1) as int)


AMB


"Alejandro Mesa" wrote:

Francisco,

Puedes crear una tabla temporal para almacenar el resultado del
procedimiento almacenado sp_spaceused. Este procedimineto lo ejecutarias
por
cada tabla de la base de datos y para ello puedes usar el procedimiento
no
documentado sp_msforeachtable (no lo recominedo) o crear un cursor para
traer
el nombre de las tablas.

Ejemplo:

use northwind
go

create table #t (
table_name sysname,
rows_cnt int,
reserved varchar(25),
data varchar(25),
index_size varchar(25),
unused varchar(25)
)

insert into #t
execute sp_msforeachtable 'execute sp_spaceused [?]'

select
*
from
#t
order by
cast(left(reserved, charindex(' ', unused) - 1) as int) desc

truncate table #t

declare @tn sysname
declare tables_cursor cursor
local
fast_forward
for
select
table_name
from
information_schema.tables
where
table_type = 'base table'

open tables_cursor

while 1 = 1
begin
fetch next from tables_cursor into @tn

if @@error != 0 or @@fetch_status != 0 break

insert into #t
exec('execute sp_spaceused ''' + @tn + '''')
end

close tables_cursor
deallocate tables_cursor

select
*
from
#t
order by
cast(left(unused, charindex(' ', unused) - 1) as int) desc

drop table #t
go

No te recomiendo el acceso directo a las tablas de sistema o el uso de
formulas que son propietarias de Microsoft y las cuales pueden ser
cambiadas
sin previo aviso (lo mismo con sp_msforeachtable).


AMB

"Francisco Flamenco" wrote:

> Alguien cuenta con una consulta para conocer el tamaño de las tablas de
> una
> base de datos (no el sp_spaceused, sino una consulta de las tablas y su
> tamaño).
>
> De antemano muchas gracias por su atención.
>
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida