View Full Version : قفل پایگاه داده
a_rezam
پنج شنبه 09 خرداد 1392, 15:13 عصر
سلام
تو چند جا که مصاحبه رفتم ازم پرسیدن وقتی پایگاه داده قفل کنه باید چیکار کرد؟
من نمیدونستم
ممکنه جواب این سوال رو بهم بدید؟
djsohrab2007
پنج شنبه 09 خرداد 1392, 16:30 عصر
تا اونجایی که من می دونم پایگاه داده قفل نمی کنه این سرور که هنگ می کنه برای مقابله با اون هم تکنولوژی های متفاوتی وجود دارد. برای آشنایی با این ها یک سر به سایت nikamooz.com بزن داخل پادکست های رایگانش در این مورد صحبت کرده است.
fakhravari
پنج شنبه 09 خرداد 1392, 17:13 عصر
read only کنید.
a_rezam
پنج شنبه 09 خرداد 1392, 17:28 عصر
read only کنید.
read only کردن تو همه زمانها که جواب نمیده؟
in_chand_nafar
پنج شنبه 09 خرداد 1392, 21:12 عصر
اگر منظورشون Lock شدن است. کلی بحث وجود داره اما ساده ترین راه برای اون رعایت یکسری استرتژی هنگام کد نویسی و یکسری مباحث ادمین سمت SQL است
1- برای مثال در صورتیکه Transaction ایجاد می کنید زمان آن را طولانی نکنید (وسط Trn یه هو به سرت نزن ایمیل بفرستی، فایل کپی کنی، اس ام اس بفرستی و...)
2- نحوه دسترسی به جداول در فرم های مختلف یکسان باشد. مثلا اگر قرار است در فرم یک روی جدول A,B,C کار کنید (انجام عملیات درج در یک Trn) در فرم دو هم اگر نیازه به انجام این کار داشته باشید دقیقا با این ترتیب این کار را انجام دهید
3-اگر اوضاع tempdb شما مناسب است می توانید سراغ Snapshot isolation level بروید
4- ایندکس ها جداول خودتون رو مرتب Rebuild و Reorganize کنید.
رعایت همه این موضوع ها باعث میشه که Lock کمتری داشته باشید و به Deadlock نخورید
5- اگر Insertهای سنگین انجام می دهید می توانید از Bulk Insert استفاده کنید
6- استفاده از Partitioning باعث فعال سازی Lock شدن در سطح پارتیشن میشه (برای مثال اگر جدول A پارتیشن نشود و در یک Trn یک رکورد درج کنید تا زمانیکه تکلیف Trn مشخص نشود کل جدول Lock است در صورتیکه اپر جدول پارتیشن شود صرفا آن پارتیشن Lock می شود /این موضوع نیاز به یه تنظیم کوچولو داره)
اما اگر به Lock خوردید و DB قفل شد یا جدول و یا جداولی قفل شدن می توانید اون Sessionهایی که عامل این کار هستند را kill کنید. (البته نه در همه شرایط باید ببینید که در بافر اون Session چه خبر است /DBCC INPUTBUFFER)
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.