25. februar 2004 - 11:29
Der er
4 kommentarer og
1 løsning
Størrelsen på de enkelte tabeller
Er det muligt at få en oversigt over hvilke tabeller, der fylder hvor meget?
Jeg har en database, der på 8 dage er blevet uforholdsmæssig stor og kunne derfor godt tænke mig at se hvilke tabeller, der fylder ekstremt meget...
Mange tak
25. februar 2004 - 11:43
#2
Det er en ret stor database med mange tabeller. Er det muligt at få en samlet liste, der kan sorteres? Query Manager f.eks?
25. februar 2004 - 12:41
#3
Følgende script til Query Analyzer vil give dig dit resultat. Kolonnerne Reserved, Data, Index_Size og Unused er i KB.
<SQL>
declare curTables cursor fast_forward for
select Table_Name
from Information_Schema.Tables
where Table_Type = 'BASE TABLE'
order by Table_Name
create table #SizeInfo
(
[Name] nvarchar(60),
[Rows] char(11),
[Reserved] varchar(11),
[Data] varchar(11),
[Index_Size] varchar(11),
[Unused] varchar(11)
)
declare @tab sysname
open curTables
fetch next from curTables into @tab
while @@fetch_status = 0 begin
insert #SizeInfo
exec sp_spaceused @tab
fetch next from curTables into @tab
end
close curTables
deallocate curTables
select *
from ( select Name,
cast(Rows as int) as Rows,
cast(SubString(Reserved, 1, len(Reserved)-3) as int) as Reserved,
cast(SubString(Data, 1, len(Data)-3) as int) as Data,
cast(SubString(Index_Size, 1, len(Index_Size)-3) as int) as Index_Size,
cast(SubString(Unused, 1, len(Unused)-3) as int) as Unused
from #SizeInfo
) X
order by Data desc
drop table #SizeInfo
</SQL>
Selve sorteringen sker i den sidste Order By.