SQL Server Management Studio umí informace o velikosti jednotlivých tabulek zobrazit v podobě krásného reportu. Nicméně jak si poradit, pokud chcete tyto informace zobrazit pomocí vlastní aplikace, nebo pokud máte k dispozici pouze SQL Server 2000? Řešením je níže prezentovaná uložená procedura TableStatistics: CREATE PROCEDURE [dbo].[TableStatistics] AS BEGIN SET NOCOUNT ON -- Create the temporary table CREATE TABLE #TableStatistics ( name nvarchar(100), rows int, reserved varchar(18), reserved_int int default(0), data varchar(18), data_int int default(0), index_size varchar(18), index_size_int int default(0), unused varchar(18), unused_int int default(0) ) -- Populate table EXEC sp_MSforeachtable @command1="INSERT INTO #TableStatistics (name,rows,reserved,data,index_size,unused) EXEC sp_spaceused '?'" -- Return converted values SELECT name AS Name, rows AS Rows, CAST(SUBSTRING(reserved, 1, CHARINDEX(' ', reserved)) AS int) AS Reserved, CAST(SUBSTRING(data, 1, CHARINDEX(' ', data)) AS int) AS Data, CAST(SUBSTRING(index_size, 1, CHARINDEX(' ', index_size)) AS int) AS IndexSize, CAST(SUBSTRING(unused, 1, CHARINDEX(' ', unused)) AS int) AS Unused FROM #TableStatistics ORDER BY Name -- Delete the temporary table DROP TABLE #TableStatistics END Jejím výstupem je resultset, který obsahuje pro každou tabulku v databázi následující údaje: Name - název tabulky Rows - počet řádků Reserved - velikost prostoru, který je pro tabulku rezervován (v kB) Data - objem v kB, který skutečně zabírají data IndexSize - objem v kB, který skutečně zabírají indexy Unused - nevyužitý objem v kB