PDA

View Full Version : برای اینکه درصد تکه تکه شدن ایندکس رو ببینم باید چه کنم؟؟



oliya24
سه شنبه 15 فروردین 1391, 17:03 عصر
سلام و خسته نباشید دوستا ن
برای اینکه بخوام متوجه بشم چند درصد از ایندکس جدول تکه تکه شده باید از چه روشی استفاده کنم
میشه راهنمایی بفرمایید

in_chand_nafar
سه شنبه 15 فروردین 1391, 22:38 عصر
برای اینکه بتونید یه گزارشی جامع از وضعیت ایندکس (خصوصا Fragmentation) اونها و اینکه کدامیک احتیاج به Rebuild و یا Reorganize دارند کافی است که بر روی بانک اطلاعاتی کلیک راست کنید از منوی بازه شده گزینه Reports و پس از آن Standard Reports و بعد از آن Index Physical Statistics را انتخاب کنید بعد از چند لحضه (بسته به حجم بانک و ...) وضعیت ایندکس ها نمایش داده می شود و در ستون Operation Recommended می توانید نیاز به Rebuild و یا Reorganize را مشاهده کنید
برای Rebuild کردن کلیه ایندکس ها می توانید از اسکریپت زیر استفاده کنید

--مدل 2000
EXEC SP_MSFOREACHTABLE @COMMAND1="PRINT '?' DBCC DBREINDEX('?')"
EXEC SP_MSFOREACHTABLE @COMMAND1="PRINT '?' DBCC DBREINDEX('?','',80)" --FILLFACTOR 80
GO
--مدل 2005,2008
EXEC SP_MSFOREACHTABLE @COMMAND1="PRINT '?' ALTER INDEX ALL ON ? REBUILD"
GO

در ضمن مسئاله تنظیم Fill Factor فراموش نشود (چیزی که خیلی ها از آن به راحتی می گذرند)

oliya24
پنج شنبه 17 فروردین 1391, 16:13 عصر
توی اون گزارش در Operation Recommended در بعضی از جاها نوشته rebuild و در بعضی قسمتا هم جای خالی این به چه معنی میتونه باشه؟؟؟http://uplod.ir/d6qpvj64vr7m/Capture.zip.htmاین هم تصویر ضمیمه

in_chand_nafar
پنج شنبه 17 فروردین 1391, 20:14 عصر
اونی که Rebuild خوب معلوم است یعنی باید (بهتر است) Rebuild بشه که اسکریپت بالا این کار رو برات انجام میده
و اونی که خالی یعنی فعلا نیاز به چیزی نداره
حالا اسکریپت بالا همه جداول رو حتی اونهایی که نیاز نداره رو Rebuild می کنه که کمی زمان بر است و معمولا این کار رو با Job انجام میدن و....
در ضمن دوست عزیز با کمی جستجو در گوگل می تونید اسکریپت بالا را صرفا به ازای یه ایندکس تغییر بدید و عملیات Rebuild صرفا به ازای یه ایندکس باشه
و...
موفق باشید