· 8 years ago · Jan 28, 2018, 01:44 AM
1/*
2 Czytelniejsze liczenie miejsca co nam zajmuje w bazie.
3*/
4
5IF OBJECT_ID('TEMPDB..tempStats') IS NOT NULL
6DROP TABLE IF EXISTS tempStats
7
8 CREATE TABLE tempStats
9(
10 ID int identity(1,1)
11 ,Table_Name VARCHAR(123)
12 ,Table_Rowcnt INT
13 ,ReservedSpaceKB VARCHAR(25)
14 ,SpaceUsedKB VARCHAR(25)
15 ,Index_SizeKB VARCHAR(25)
16 ,UnusedSpaceKB VARCHAR(25)
17)
18INSERT INTO tempStats
19EXEC sp_MSforeachtable 'sp_spaceused ''?'''
20
21-- convert spaces from KB to MB
22SELECT
23 temp.Table_Name as 'Nazwa Tabeli'
24 ,Table_Rowcnt as 'Liczba wierszy'
25 ,ROUND(CAST(REPLACE(ReservedSpaceKB, 'KB', '') AS FLOAT) / 1024,5) AS 'Przestrzen zarezerwowana [MB]'
26 ,ROUND(CAST(REPLACE(SpaceUsedKB, 'KB', '') AS FLOAT) / 1204,5) AS 'Przestrzen uzywana [MB]'
27 ,ROUND(CAST(REPLACE(Index_SizeKB, 'KB', '') AS FLOAT) / 1024,5) AS 'Rozmiar indeksu [MB]'
28 ,ROUND(CAST(REPLACE(UnusedSpaceKB, 'KB', '') AS FLOAT) / 1024,5) AS 'Nieuzywana przestrzen [MB]'
29FROM tempStats temp
30ORDER BY 'Przestrzen uzywana [MB]' desc
31DROP TABLE IF EXISTS tempStats