Иногда бывает необходимо узнать на что уходит место в БД. Для этого был "создан" скрипт показывающий размер таблиц базы данных
Скрипт является компиляции 3 скриптов, найденных на сайтах stackoverflow.com и sql.ru
Сам скрипт:
DECLARE @sysFL varchar(100)
if exists(select * from master.sys.sysdatabases where name = N'#temp') drop table #temp
CREATE TABLE [#temp] (
[Name] [nvarchar](100) ,
[Rows] [char] (11) ,
[Reserved] [varchar] (18) ,
[Data] [varchar] (18) ,
[index_size] [varchar] (18) ,
[Unused] [varchar] (18)
) ON [PRIMARY]
DECLARE cursorsys CURSOR FOR
select Table_Schema + '.' + Table_Name from INFORMATION_SCHEMA.TABLES
OPEN cursorsys
FETCH NEXT FROM cursorsys into @sysFL
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT into [#temp] EXEC sp_SpaceUsed @sysFL
FETCH NEXT FROM cursorsys into @sysFL
END
CLOSE cursorsys
DEALLOCATE cursorsys
select * from #temp order by convert(int,left(Data,LEN(Data)-3)) desc
select 'ALL DATABASE', sum(convert(int,left(Reserved,LEN(Reserved)-3))) AS 'Reserved',
sum(convert(int,left(Data,LEN(Data)-3))) AS 'Data',
sum(convert(int,left(index_size,LEN(index_size)-3))) AS 'index_size',
sum(convert(int,left(Unused,LEN(Unused)-3))) AS 'Unused' from #temp
drop table #temp
Скрипт является компиляции 3 скриптов, найденных на сайтах stackoverflow.com и sql.ru
Сам скрипт:
DECLARE @sysFL varchar(100)
if exists(select * from master.sys.sysdatabases where name = N'#temp') drop table #temp
CREATE TABLE [#temp] (
[Name] [nvarchar](100) ,
[Rows] [char] (11) ,
[Reserved] [varchar] (18) ,
[Data] [varchar] (18) ,
[index_size] [varchar] (18) ,
[Unused] [varchar] (18)
) ON [PRIMARY]
DECLARE cursorsys CURSOR FOR
select Table_Schema + '.' + Table_Name from INFORMATION_SCHEMA.TABLES
OPEN cursorsys
FETCH NEXT FROM cursorsys into @sysFL
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT into [#temp] EXEC sp_SpaceUsed @sysFL
FETCH NEXT FROM cursorsys into @sysFL
END
CLOSE cursorsys
DEALLOCATE cursorsys
select * from #temp order by convert(int,left(Data,LEN(Data)-3)) desc
select 'ALL DATABASE', sum(convert(int,left(Reserved,LEN(Reserved)-3))) AS 'Reserved',
sum(convert(int,left(Data,LEN(Data)-3))) AS 'Data',
sum(convert(int,left(index_size,LEN(index_size)-3))) AS 'index_size',
sum(convert(int,left(Unused,LEN(Unused)-3))) AS 'Unused' from #temp
drop table #temp
Комментариев нет:
Отправить комментарий