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

تفاوت Latch و Lock

خدمت دوستان عزیز سلام عرض می کنم. میخواستم سوال کنم فردی می تونه در مورد مقایسه Latch و Lock منو راهنمایی کنه و نقش آنها در Performance توضیح بده. من دارم در مورد موضوع Performance Tunning مطالعه می کنم و نیاز به راهنمایی دارم . ممنون

پرسیده شده در 1394/01/24 توسط

6 پاسخ

4

Latch یک قفل فیزیکی بر روی حافظه است که توسط Storage Engine روی Block های حافظه قرار می گیرید و این قفل فقط در زمانی که داده از دیسک سخت به حافظه انتقال پیدا می کنه گذاشته میشه. این عملیات برای این است که Thread دیگر یا برنامه دیگری آن قسمت از حافظه رو اشغال نکنه

Lock یک نوع قفل منطقی است که روی پایگاه داده - جداول - Data Page - رکوردها گذاشته میشه و تنوع خیلی زیادی هم داره مانند Shared , Update, Exclusive , Intensive Shared, Intensive Update, Intensive Exclusive.

مدیر پایگاه داده توانایی تغییر دادن روی Latch ها رو نداره ولی میشه از طرایقی روی Lock ها تاثیر گذاشت.

البته شما می توانید در لایه Development هم پایگاه داده را بهینه سازی کنید البته یکسری شرایطی باید محیا باشد.

به عنوان مثال: یک دستور داریم که داده ها را از طریق Hash Match می خواند و عملیات را انجام می دهد با توجه به نوع عملکرد Hash Match جدول منبع به طور کلی قفل می شود و هیچ تراکنشی توانایی نوشتن و به روزرسانی جدول را ندارد حال اگر این جدول در حجم چند صد هزار یا چند میلیون رکورد باشد ما با مشکل Blocking طرف خواهیم شد.

پاسخ در 1394/07/04 توسط
0

خوب دوست من شما Performance Tunning رو در چه لایه ای میخاین پیاده سازی کنید ؟ در لایه Develope یا در لایه DBA ؟

پاسخ در 1394/01/25 توسط
0

سلام جناب نصیری ....

فعلا به صورت کلی دارم این مبحث رو مطالعه می کنم ولی بیشتر باید روی قسمت Administrator ؛ SQL Server تمرکز کنم ولی اگر در زمینه Develop هم آشنایی داشته باشم ممکنه مفید واقع بشه چون بنظرم میشه به دوستان متخصص در این زمینه ارجاع داد . چون دوستان Developer همکاری خوبی دارند.

ممنون از شما

پاسخ در 1394/01/26 توسط
0

خیلی ممنون از پاسخ تون...

من به دنبال راهکارهایی برای بهبود performance در sql server هستم.

پاسخ در 1394/01/25 توسط
1

فکر کنید همزمان چندین نفر بخاین از یک Shard Folder در شبکه استفاده کنن ، قطعا سرعت اون Shared folder پایین میاد ، ممکنه همزمان حتی یک فایل رو چند نفر باز کنن ، اگه دقت کنید ویندوز بصورت خودکار فایل دوم رو بصورت Read Only باز می کنه که تداخلی این وسط پیش نیاد ، حالا فکر کنید در پایگاه داده ای مثل اوراکل شما قرار هست از مجموعه ای از Table ها Query بگیرید و در این حین که میخاین Query بگیرید چندین نفر همزمان دارن از این Database و Table مد نظر شما استفاده می کنن و این باعث میشه هم Query شما کند بشه و هم اینکه Query شما دقیق نباشه ، حالا در چنین مواردی Oracle این امکان رو به برنامه نویس یا خود DBA میده که بتونید Database یا Table رو قفل کنید در اون لحظه که تغییری روش اعمال نشه و یا اینکه حداقل Read Only بشه که کاری روش انجام نشه ، حالا به این حالت میگن Lock در Oracle که انواع و اقسام داره که Application Lock و Dictionary Lock و ... هستند. Latch در واقع همون Lock هست اما مثل Lock روی هارد دیسک اعمال نمیشه بلکه روی اطلاعاتی که در حال حاضر روی RAM قرار دارند اعمال میشه ، البته من تخصصم اوراکل نیست اما به هر حال این برداشتی هست که بدست آوردم ، برای اطلاعات بیشتر می تونید به لینک های زیر هم مراجعه کنید :

http://www.dba-oracle.com/t_lru_latches.htm
http://stackoverflow.com/questions/15936323/different-types-of-locks-in-oracle
http://www.club-oracle.com/articles/understanding-latches-in-oracle-231/

ITPRO باشید

پاسخ در 1394/01/24 توسط
1

سلام ، شما با توجه به اینکه در سطح Development نمی تونید کاری انجام بدید به نظرم به لینک های زیر یه سری بزنید و فقط دید پیدا بکنید که چه کارهایی برای Tune کردن MSSQL در لایه DBA می تونید انجام بدید چون در این لایه کارهای به نسبت کمتری به لایه Develop میشه انجام داد ، به منابع زیر یه نگاهی بندازید :

http://www.mssqltips.com/sql-server-tip-category/9/performance-tuning/
http://www.toptal.com/sql/sql-database-tuning-for-developers
http://sqlmag.com/sql-server-2008/top-10-sql-server-performance-tuning-tips
http://www.mssqltips.com/sqlservertip/1429/sql-server-dba-performance-tuning-interview-questions/

ITPRO باشید

پاسخ در 1394/01/26 توسط

پاسخ شما