PDA

View Full Version : sp_spaceused



rezarafiee
دوشنبه 31 تیر 1387, 13:15 عصر
با اجرای دستور زیر
sp_spaceused'tableName' نتیجه زیر به دست آمد در تصویرضمیمه یک عدد منفی مشخص است آن عدد چیست و چرا منفی شده است؟

AminSobati
دوشنبه 31 تیر 1387, 14:23 عصر
این دستور رو آزمایش کنین ببینید آیا همون نتیجه بدست میاد


exec sp_spaceused 'tsubscribers','true'

sarami
دوشنبه 31 تیر 1387, 15:15 عصر
با استفاده از این sp میتونین اطلاعات مربوط به مقدار حافظه اشغال شده از تمام table هاتون رو استخراج کنین





CREATE PROCEDURE GetAllTableSizes
AS
/*
محاسبه مقدار فضای اختصاص یافته به هر table
*/
DECLARE @TableName VARCHAR(100) --برای ذ

--
DECLARE tableCursor CURSOR
FOR
select [name]
from dbo.sysobjects
where OBJECTPROPERTY(id, N'IsUserTable') = 1
FOR READ ONLY

--
CREATE TABLE #TempTable
(
tableName varchar(100),
numberofRows varchar(100),
reservedSize varchar(50),
dataSize varchar(50),
indexSize varchar(50),
unusedSize varchar(50)
)

--Open the cursor
OPEN tableCursor

--رفتن به نام اولین table
FETCH NEXT FROM tableCursor INTO @TableName

--loop
WHILE (@@Fetch_Status >= 0)
BEGIN
--درج نتایج
INSERT #TempTable
EXEC sp_spaceused @TableName

--رفتن به تیبل بعدی
FETCH NEXT FROM tableCursor INTO @TableName
END


CLOSE tableCursor
DEALLOCATE tableCursor

SELECT *
FROM #TempTable

--پاک کردن table »وقت
DROP TABLE #TempTable

GO

AminSobati
دوشنبه 31 تیر 1387, 21:01 عصر
با استفاده از این sp میتونین اطلاعات مربوط به مقدار حافظه اشغال شده از تمام table هاتون رو استخراج کنین
[/CODE]

مایکروسافت زحمت درست کردن Cursor رو خودش براتون کشیده:



declare @TempTable table(
tableName varchar(100),
numberofRows varchar(100),
reservedSize varchar(50),
dataSize varchar(50),
indexSize varchar(50),
unusedSize varchar(50))

insert @TempTable exec sp_MsForEachTable 'exec sp_spaceused''?'''

select * from @TempTable

rezarafiee
سه شنبه 01 مرداد 1387, 09:53 صبح
با اجرای دستور دومی که استاد ثباتی فرمودند نتیجه زیر حاصل شد(فایل ضمیمه) لطفا راهنمایی فرمایید.

AminSobati
سه شنبه 01 مرداد 1387, 17:33 عصر
این SP اطلاعات رو از بخشی میخونه که الزاما بلادرنگ به روز نمیشه، لذا ممکنه در شرایطی آمار و ارقام غلط ارائه کنه. با پارامتر دوم (True) شما از SP میخواین که ابتدا آمار رو به روز کنه و بعد نتیجه بده