úterý 22. června 2010

Zjištění velikosti jednotlivých tabulek v DB

Dneska jsem potřeboval zjistit velikosti jednotlivých tabulek v databázi. Sice jsem v SQL Manageru našel možnost zobrazení nějakého takového reportu, ale selhalo to na chybě. Kolega mi poskytl zajímavý skriptík, který hezky přehledně zobrazí jednotlivé velikosti tabulek v databázi. Člověk hned zjistí, která z tabulek je ta nenasytná ;-)


DECLARE @DATABASE varchar(100)
DECLARE @tablename varchar(100)
DECLARE @Space TABLE (name varchar(100), rows varchar(100), reserved varchar(100), DATA varchar(100), index_size varchar(100), unused varchar(100))

SET @DATABASE =  DB_NAME()

DECLARE State_Cursor CURSOR FOR
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'   AND TABLE_CATALOG = @DATABASE ORDER BY TABLE_NAME
OPEN State_Cursor
FETCH NEXT FROM State_Cursor INTO @tablename
WHILE @@FETCH_STATUS = 0
BEGIN
  INSERT INTO @Space EXEC sp_spaceused @tablename
  FETCH NEXT FROM State_Cursor INTO @tablename
END
CLOSE State_Cursor
DEALLOCATE State_Cursor

SELECT * FROM @Space

Žádné komentáře:

Okomentovat