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.
Řešením je níže prezentovaná uložená procedura TableStatistics
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
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
Exec TableStatistics
© Copyright 1992 - 2024 PALSTAT s.r.o. |
PALSTAT s.r.o. Bucharova 230 543 02 Vrchlabí CZECH REPUBLIC |
tel.: +420 499 422 044 tel.: +420 499 692 016 www.palstat.cz |
» Hlavní strana » Školení » Reference » Novinky |
» Události » Partneři » Podpora » Kontakt |
» Produkty » Zákaznický portál » Vzdálená pomoc » Aktualizace |
» Obchodní podmínky » Fotogalerie » GDPR, zásady ochrany soukromí » Portal 2 |