Veritabanınızda bulundan tüm tabloların kayıt sayısını ve bu tabloların fiziksel olarak kapladığı yeri KB cisinden aşağıdaki T-SQL cümlecikleri ile bulabilirsiniz:
SET NOCOUNT ON
IF EXISTS(SELECT * FROM TempDb.dbo.SysObjects WHERE NAME = '##Space_Used') DROP TABLE ##Space_Used
CREATE TABLE ##Space_Used (
name nvarchar(128),
rows char(11),
reserved varchar(18),
data varchar(18),
index_size varchar(18),
unused varchar(18)
)
DECLARE @User_Table_Name varchar(200)
DECLARE User_Tables_Cursor CURSOR FOR
SELECT Name
FROM Dbo.SysObjects
WHERE XTYPE = 'U'
OPEN User_Tables_Cursor
FETCH NEXT FROM User_Tables_Cursor INTO @User_Table_Name
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO ##Space_Used
EXEC sp_spaceused @User_Table_Name
FETCH NEXT FROM User_Tables_Cursor INTO @User_Table_Name
END
CLOSE User_Tables_Cursor
DEALLOCATE User_Tables_Cursor
SELECT
TableName=LEFT(Name, 50),
"RowCount"=Rows,
Phys_Size_KB = CONVERT(int, LEFT(Reserved, PATINDEX('% KB', Reserved) - 1))
FROM ##Space_Used
ORDER BY Phys_Size_KB DESC
IF EXISTS(SELECT * FROM TempDb.dbo.SysObjects WHERE NAME = '##Space_Used') DROP TABLE ##Space_Used
Kaynak: SQLServerCentral
Hiç yorum yok:
Yorum Gönder