View Full Version : sp_spaceused
  
rezarafiee
دوشنبه 31 تیر 1387, 14:15 عصر
با اجرای دستور زیر
sp_spaceused'tableName' نتیجه زیر به دست آمد در تصویرضمیمه یک عدد منفی مشخص است آن عدد چیست و چرا منفی شده است؟
AminSobati
دوشنبه 31 تیر 1387, 15:23 عصر
این دستور رو آزمایش کنین ببینید آیا همون نتیجه بدست میاد
exec sp_spaceused 'tsubscribers','true'
sarami
دوشنبه 31 تیر 1387, 16: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, 22: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, 10:53 صبح
با اجرای دستور دومی که استاد ثباتی فرمودند نتیجه زیر حاصل شد(فایل ضمیمه) لطفا راهنمایی فرمایید.
AminSobati
سه شنبه 01 مرداد 1387, 18:33 عصر
این SP اطلاعات رو از بخشی میخونه که الزاما بلادرنگ به روز نمیشه، لذا ممکنه در شرایطی آمار و ارقام غلط ارائه کنه. با پارامتر دوم (True) شما از SP میخواین که ابتدا آمار رو به روز کنه و بعد نتیجه بده
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.