50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

rebuild کردن ایندکس ها

با سلام و خسته نباشید خدمت شما همه دوستان عزیز

عید نوروز را پیشاپیش به همه شما دوستان تبریک عرض می نمایم

من یک سئوالی داشتم اگر من کوئری زیر را اجرا کنم و rebuild کنم ایندکس مورد نظر را تفاوتش با کوئری بعدی در چیست :

ALTER DATABASE [Company] SET RECOVERY BULK_LOGGED;
GO

ALTER INDEX [RD_CL] ON [RandomData] REBUILD;
GO

ALTER DATABASE [Company] SET RECOVERY FULL;
GO

کوئری بعدی :

ALTER INDEX [RD_CL] ON [RandomData] REBUILD;
GO

متشکر می شوم من را راهنمایی کنید

با تشکر از شما

پرسیده شده در 1396/12/24 توسط

11 پاسخ

1

در سازمان های حساس بیشتر حالت Full مد نظر است. حالا اگه شما بخواین rebuild رو کمی سریعتر و یا به دلیل نداشتن فضای ذخیره سازی نخواین فایل لاگتون رشد کنه پس ناچارید عملیات رو طوری انجام بدین که با فضایی که در اختیار دارین صورت بگیره که میشه همین حالت و دستور Bulk log

پاسخ در 1397/01/14 توسط
1

با سلام. این سوال شما خیلی کلی هست و بستگی به این داره که به چه حالتی دیتا بیستون بره. اما سرچ کنید زیاد هست اما مثلا این حالت https://www.xtivia.com/recovering-recovery-pending-status و یا استفاده از ابزارهایی مانند Apex Log ّرا خواندن فایلهای لاگتون.

پاسخ در 1397/02/03 توسط
0

با سلام و خسته نباشید خدمت شما دوست عزیز و گرامی

جناب آقای مهندس reza.fiuzi عزیز از لینکی که ارسال کردید ممنونم.

حالا اگر ما مد دیتابیس را در حالت bulk log قرار بدهیم و در این مد rebuild انجام بدهیم و دیتابیس به مشکلی برخورد کند و ما از دیتابیس بکاپ منظم هم داشته باشیم و فرصت کافی برای ریستور کردن داشته باشیم آیا بهتر نیست که همیشه برای rebuild کردن مد دیتابیس را در حالت Bulk log قرار بدهیم حتی شما تصور کنید ما فضای کافی هم داشته باشیم اما نباید فضا را بیهوده هدر بدهیم چون فکر می کنم منظور شما این هست که اگر دیتابیس را در حالت full قرار بدهیم و در آن حالت rebuild انجام بدهیم اگر در این حالت دیتابیس به مشکلی برخورد کن ما می توانیم دیتابیس را ریکاوری کنیم اما بهتر نیست به جای ریکاوری کردن ما دیتابیس را در حالت Bulk log قرار بدهیم و rebuild را انجام بدهیم نهایتا اگر دیتابیس به مشکلی برخورد کند ما می توانیم دیتابیس را ریستور کنیم؟

ممنونم از پاسخی که می دهید

با تشکر از شما دوست عزیز

پاسخ در 1397/02/04 توسط
0

با سلام خدمت شما دوست عزیز و گرامی

1-جناب مهندس عزیز از جواب عالی شما ممنونم خیلی عالی توضیح دادید فقط یک سئوال دیگری داشتم اگر سرور ما حجم کافی برای فایلهای mdf و ldf نداشته باشد و ما بخواهیم به صورت bulk logged در حقیقت rebuild کنیم و فرض کنیم برق نمی رود و این مشکل را برطرف کرده ایم و باز فرض کنیم دیتابیس ما به مشکلی برخورد نمی کند و با این که log ای برای rebuild کردن ذخیره نمی شود یعنی مثل full عمل نمی کند آیا در آینده ما با فایل ldf به مشکلی برخورد نمی کنیم.

2-و اگر در آینده سرور کرش کنه و دیتابیس به مشکلی برخورد کنه با این که rebuild را در حالت bilk logged انجام داده ایم آیا با فایل ldf می شود دیتابیس را به حالت قبل بازگرداند.

ممنونم مهندس عزیزم

پاسخ در 1397/02/01 توسط
1

عرض کردم خدمتتون اصلی ترین دلیل همون رشد نکردن فایل لاگ هست. مثلا ما دیتا بیس داریم 400 گیگ فقط حجم هر دیتا هست پس عمل rebuild index هم در حالت فول باعث رشد زیاد لاگ فایل میشه . حالا اگه من حجم کافی نداشته باشم چه کنم؟ باید بی خیال بشم؟ خیر باین روش عمل rebuild رو انجام میدم اما حجم لاگ فایلم هم رشد نمیکنه. اما در مورد اینکه چرا همیشه استفاده نکنم ازین حالت دلیل داره. چون اگه وسط عملیات به هر دلیل برق رفت و یا Sql مشکل خورد چون لاگ ثبت شده ای ندارم و از طرفی مد دیتابیسم هم به کل تغییر کرده امکان بازگشت از روی log backup خیلی سخت میشه و داستان داره.

پاسخ در 1397/01/15 توسط
1

شما فقط عملیت Rebuild رو چرا در نظر میگیرید. این مد کل عملیات با ماهیت bulk رو بصورت کامل لاگ نمیکنه. حالا شما فرض کنید Select Into رو دارید استفاده میکنید یک میلیون رکورد رو دارید بین جداول جابجا می کنید. اگه مشکل بخوره و لاگ هم که ندارید تکلیف چیه؟ باید از ابندا دوباره اجرا کنید. اما در حالت فول می تونید ادامه عملیات رو در پیش بگیرید و با فایل لاگ ببینید تا چه رکوردهایی درج شده.

پاسخ در 1397/02/04 توسط
1

خواهش میکنم. در مورد سوال اول شما فایل لاگ در حالت ریکاوری خیلی به دردتون خواهد خوردو وقتی تو این مد هستین اگه مطمئن هستین که هیچ اتفاقی رخ نمیده در حین عملیات مانند Select Into و یا Rebuild Index خوب پس بخاطر نداشتن فضا در این مد قرار بدید.

در سوال دوم هم اگه در حین عملیات Bulk سرور مشکلی براش پیش نیاد بله میشه در صورت خرابی سرور در بعدها ریکاوری کرد. در واقع در این مد فقط در حین عملیات Bulk مانند Insert INto و.. بخاطر صرفه جویی در حجم ذخیره سازی فقط در فایل لاگ ثبت میشه که این عملیات انجام شده و اگر حین عملیات مشکل داشته باشه باید دوباره عملیات از اول اجرا بشه.از ابتدا تاکید میکنم.

پاسخ در 1397/02/02 توسط
0

با سلام و خسته نباشید خدمت شما دوست عزیز

جناب مهندس من خیلی از شما سئوال پرسیدم منرا ببخشید.

از توجه شما ممنونم

فقط یک سئوال دیگر هم داشتم ممنون می شوم پاسخ دهید اگر مد دیتابیس در حالت full باشد و ما در این حالت برای مثال rebuild کنیم و سرور کرش کنه و دیتابیس مشکل دار بشه و ما بخواهیم که دیتابیس را به حالت اولیه برگردانیم باید چه کد t-sql ای انجام بدهیم تا سرور به حالت اولیه در بیاد

خیلی ممنون می شوم پاسخ دهید.

با سپاس از شما

پاسخ در 1397/02/02 توسط
1

در مورد rebuild ایندکس ها تفاوت میکنه و در این حالت مشابه Simple رشد فایل لاگ شما نسبت به مدل Full کمتر است و اگه ایندکسهای حجیم داشته باشین فرق میکنه . اما در عملیاتی مثل INDEXDEFRAG خیلی تفاوتی نمیکنه.

پاسخ در 1397/01/06 توسط
0

با سلام و خسته نباشید خدمت شما

عید نوروز را به شما تبریک عرض می نمایم

دقیقا منظور شما را متوجه شدم اما این مورد در چه مواردی استفاده دارد چون اگر در حالت full باشد لاگ خیلی بیشتری می گیرد و اگر در حالت BULKLOGGED باشد لاگ خیلی کمتری می گیرد چون فکر می کنم معمولا در سازمانها یا شرکتهای کوچک و بزرگ در حالت full قرار می دهند دیگر در حالت BULKLOGGED قرار نمی دهند چرا به این ضورت هست؟

ممنون می شوم پاسخ سئوال منرا بدهید

متشکرم

پاسخ در 1397/01/10 توسط
0

با سلام و خسته نباشید خدمت شما دوست عزیز و گرامی

من گفته های شما را کاملا متوجه شدم مهندس جان اما در عمل این دو با هم چه تفاوتی دارند منظورم کل تفاوت ها هستند شما یکی از تفاوتهای آن را گفتید که اگر در حالت BULKLOGGED باشد سریعتر و فایل Ldf ما رشد کمتری دارد پس اگر چنین هست همه می توانند در حالت BULKLOGGED بگذارند که فایل لاگ حجم کمتری داشته باشد و سریعتر هم این کار انجام شود خواستم بدونم در کل این دو تفاوتشان در چیست مثلا اگر BULK_LOGGED باشد شاید برای مثال می گویم کاملا rebuild انجام نشود من اینو برای مثال گفتم.

ممنونم می شوم راهنمایی کنید از شما سپاسگزارم

پاسخ در 1397/01/14 توسط

پاسخ شما