আমাকে একটি সাক্ষাত্কারে এই প্রশ্ন জিজ্ঞাসা করা হয়েছিল এবং তার কোনও উত্তর ছিল না। এখানে কেউ ব্যাখ্যা করতে পারেন?
আমাকে একটি সাক্ষাত্কারে এই প্রশ্ন জিজ্ঞাসা করা হয়েছিল এবং তার কোনও উত্তর ছিল না। এখানে কেউ ব্যাখ্যা করতে পারেন?
উত্তর:
সারি, পৃষ্ঠাগুলি বা পুরো টেবিল বা সূচীতে ডিবি লকগুলি উপস্থিত থাকতে পারে। যখন কোনও লেনদেন চলছে, লেনদেনের অধীনে থাকা লকগুলি সংস্থান গ্রহণ করে। লক এসকেলেশন হ'ল সিস্টেমটি একাধিক লকগুলিকে একটি উচ্চ স্তরের এককে একত্রিত করে (উদাহরণস্বরূপ কোনও পৃষ্ঠায় একাধিক সারি লক একত্রিত করা বা একাধিক পৃষ্ঠায় পুরো টেবিলে একত্রীকরণ করা) সাধারণত প্রচুর পরিমাণে সূক্ষ্ম দানযুক্ত লকগুলি দ্বারা গৃহীত সংস্থানগুলি পুনরুদ্ধার করতে।
এটি স্বয়ংক্রিয়ভাবে এটি করবে, যদিও আপনি নির্দিষ্ট টেবিলে লক বর্ধনের নীতিটি নিয়ন্ত্রণ করতে টেবিলগুলিতে পতাকাগুলি সেট করতে পারেন (লাইনে থাকা বইগুলিতে ALTER TABLE দেখুন)। বিশেষত, অকাল বা অত্যধিক আগ্রহী লক এস্কলেশন একই সময়ে একই পৃষ্ঠায় পৃথক সারি লেখার জন্য দুটি প্রক্রিয়া চলাকালীন সাইব্যাস এবং এসকিউএল সার্ভারের পুরানো সংস্করণগুলিতে সমস্যা হিসাবে ব্যবহৃত হয়েছিল। আপনি যদি যথেষ্ট পরিমাণে ফিরে যান (আইআইআরসি এসকিউএল সার্ভার .5.৫) এসকিউএল সার্ভারের আসলে সারি লকিং ছিল না তবে কেবল টেবিল বা পৃষ্ঠাগুলি লক করতে পারে। যেখানে এটি ঘটেছে, আপনি একই পৃষ্ঠায় রেকর্ড সন্নিবেশগুলির মধ্যে বিতর্ক পেতে পারেন; প্রায়শই আপনি টেবিলটিতে একটি ক্লাস্টার্ড সূচক রাখতেন যাতে নতুন সন্নিবেশগুলি বিভিন্ন পৃষ্ঠায় যায়।
এটি অনেকগুলি দানাদার দানাদার লকগুলিকে আরও কম মোটা দানাযুক্তগুলিতে রূপান্তর করে সিস্টেম ওভারহেড হ্রাস করার একটি পদ্ধতি। আরও বিস্তারিত তথ্য এখানে এবং এখানে পাওয়া যাবে ।
উদাহরণস্বরূপ, যদি কোনও টেবিলে নির্দিষ্ট সারিগুলিতে আপনার বেশিরভাগ (সাধারণত শত বা ততোধিক) লক থাকে তবে একবার আপনি আপনার সর্বাধিক অনুমোদিত সংখ্যক লকের সংখ্যা ছাড়িয়ে গেলে পুরো টেবিলে লকের জন্য এগুলি বিনিময় হতে পারে।
মেমরি ওভারহেড হ্রাস করার জন্য এসকিউএল সার্ভার লক এসক্লেশনটি করে , বেশ কয়েকটি সূক্ষ্ম নিম্নস্তরের লকগুলি মোটা-দানাযুক্ত উচ্চ স্তরের লকে রূপান্তর করে।
এটি একটি পৌরাণিক কাহিনী যে সারি লকগুলি পৃষ্ঠা লকগুলিতে বাড়ানো হয়েছে, এটি উপরে @ConcernedOfTunbridgeWells দ্বারা উল্লিখিত ভুলটি ভুল।
যদি কোনও সারণীতে খুব কম সারি-আপডেট থাকে, এসকিউএল ইঞ্জিন সেই সারিগুলিতে সারি-লকগুলি নেওয়ার চেষ্টা করবে বা সেই পৃষ্ঠাগুলিতে পৃষ্ঠা-লক নেবে। ধরা যাক এটি রো-লক নিয়েছে। তবে যদি সারি-আপডেটগুলি প্রান্তিক আকার বৃদ্ধি করে (~ 5 ক লক) তবে কয়েকটি সারি-লক না নিয়ে একক টেবিল-লক লাগে takes সুতরাং, এটি বেশ কয়েকটি রো-লকগুলি প্রকাশ করে এবং একটি একক টেবিল-লক নিয়ে মেমরির ওভারহেড হ্রাস করে, তবে একযোগে বাড়ে। পৃষ্ঠা লক দিয়ে একই ঘটে।
লক এস্কেলশন থ্রেশহোল্ড এ-অন্তত 5000 কেশ, এবং বিভিন্ন কারণের উপর নির্ভর করে, লক এস্কেলশন একটি বিস্তারিত ব্যাখ্যা এখানে দুটিই MSDN বোল উল্লেখ করা হয়েছে: https://technet.microsoft.com/en-us/library/ms184286(v = sql.105) .aspx
লক বাড়ানো মানে লককে আরও নিয়ন্ত্রক মোডে রূপান্তর করা। এটি প্রায়শই ডাটাবেসে দেখা যায়। কোনও জিজ্ঞাসায় "ভাগ করা" র জন্য কোনও সংস্থান লক থাকতে পারে এবং একটি আপডেট সম্পাদনের জন্য এটি "এক্সক্লুসিভ" তে বাড়ানো যেতে পারে।