এসকিউএল সার্ভার - নির্বাচিত বিবৃতিগুলি অবরুদ্ধ না করার জন্য কি বিচ্ছিন্নতা স্তর?


9

আমার একটি দীর্ঘ চলমান লেনদেন রয়েছে (বলা যাক, টি 1) যা এসকিউএল সার্ভার ২০০৮ আর 2 এর একটি টেবিলটিতে কিছু মুছুন, আপডেট এবং সন্নিবেশ সম্পাদন করে। একই সময়ে, অন্য একটি প্রক্রিয়া পর্যায়ক্রমে এই টেবিল থেকে নির্বাচিত বিবৃতি চালায়।

ডিফল্ট বিচ্ছিন্নতা সেটিংসের অধীনে (আমি মনে করি কমিট পড়ুন?), টি 1 লেনদেনটি সীমাবদ্ধ না করা বা ফিরিয়ে না দেওয়া পর্যন্ত কোনও নির্বাচিত বিবৃতি চালানো থেকে অবরুদ্ধ করে।

আমি যেটি দেখতে চাই তা হ'ল লেনদেন চলাকালীনও ধারাবাহিক ডেটাতে কাজ করতে বাছাই করা বিবৃতিগুলির জন্য। আমি বিশ্বাস করি যে এসএনএপশট বিচ্ছিন্নতা সাহায্য করতে পারে, তবে আমি সঠিক দিকে যাচ্ছি কিনা তা নিশ্চিত নই। এটি কি এই অ্যাপ্লিকেশনটির জন্য সেরা বিচ্ছিন্নতা স্তর হবে?

দ্বিতীয়ত, নির্বাচিত বিবৃতিগুলিতে কল করা প্রক্রিয়াটির উপরে আমার কোনও নিয়ন্ত্রণ নেই তবে টিএন কল করে .NET অ্যাপ্লিকেশনটির উপরে আমার নিয়ন্ত্রণ রয়েছে। নির্বাচিত বিবৃতি এবং টি 1 উভয় ক্ষেত্রেই কি কোনও বিচ্ছিন্নতা স্তরের পরিবর্তনগুলি প্রয়োজন হবে, বা কেবল আলাদা আলাদা বিস্তৃত স্তর হিসাবে কেবল টি 1 চিহ্নিত করার জন্য এটি যথেষ্ট হবে?

উত্তর:


8

একটি আদর্শ বিশ্বে আপনার দুটি পছন্দ থাকতে পারে, এসএনএপশট এবং রিড কমিটেড স্নাপশট (আরসিএসআই)। আপনার কাজের চাপের জন্য কোনটি উপযুক্ত তা সিদ্ধান্ত নেওয়ার আগে আপনি লেনদেনের বিচ্ছিন্নতার স্তরের বেসিকগুলি বুঝতে পেরেছেন তা নিশ্চিত করুন । আরসিএসআইতে যাওয়ার ফলে আপনি যে বিভিন্ন ফলাফল দেখতে পাচ্ছেন তা সম্পর্কে বিশেষত সচেতন হন

এটি মনে হচ্ছে এটি আদর্শ বিশ্বের নয় কারণ নির্বাচিত বিবৃতি উত্পন্ন করে এমন অ্যাপ্লিকেশনটির উপর আপনার কোনও নিয়ন্ত্রণ নেই। সেক্ষেত্রে আপনার একমাত্র বিকল্পটি ডাটাবেসের জন্য প্রশ্নে আরসিএসআই সক্ষম করা হবে যাতে নির্বাচকরা রিড কমিটের পরিবর্তে স্বয়ংক্রিয়ভাবে আরসিএসআই ব্যবহার করবে।


6

সঠিক, লেনদেন শুরুর আগে থেকেই ধারাবাহিক, কমিটেড ডেটা পেতে SNAPSHOT বিচ্ছিন্নতা ব্যবহার করুন।

রিড অসমুক্ত বিচ্ছিন্নতা (ওরফে নলোক্ক ইঙ্গিত) মন্ডজ, অসামঞ্জস্যপূর্ণ ডেটা পড়বে

আপনি যখন SNAPSHOT বিচ্ছিন্নতা সক্ষম করবেন, তারপরে এটি সমস্ত নির্বাচনগুলি এগিয়ে যাওয়ার জন্য কার্যকর হয়। আপনি ALTER DATABASEএই ক্ষেত্রে READ_COMMITTED_SNAPSHOT দিয়ে চালান

সম্পাদনা করুন: ALTER DATABASE এর যোগসূত্র + উদ্ধৃতি (আমার সাহসী)

ডাটাবেস স্তরে রিড কমিটেড স্ন্যাপশট বিকল্প সক্ষম করে। এটি সক্ষম করা থাকলে, কোনও লেনদেন স্ন্যাপশট বিচ্ছিন্নতা ব্যবহার না করলেও ডিএমএল স্টেটমেন্টগুলি সারি সংস্করণ তৈরি করা শুরু করে। এই বিকল্পটি সক্ষম হয়ে গেলে, লডের পরিবর্তে পঠিত প্রতিশ্রুতিবদ্ধ বিচ্ছিন্নতা স্তর ব্যবহার করে সারি সংস্করণ ব্যবহার করে এমন লেনদেনগুলি। যখন কোনও লেনদেন পড়ার জন্য প্রতিশ্রুতিবদ্ধ বিচ্ছিন্নতা স্তরে চলে তখন সমস্ত বিবৃতি ডেটার একটি স্ন্যাপশট দেখতে পায় কারণ এটি বিবৃতিটির শুরুতে উপস্থিত থাকে।

এবং স্ন্যাপশট বিচ্ছিন্নতা ব্যবহার করা থেকে (আমার সাহসী)

READ_COMMITTED_SNAPSHOT ডাটাবেস বিকল্পটি যখন কোনও ডাটাবেজে স্ন্যাপশট বিচ্ছিন্নকরণ সক্ষম হয় তখন ডিফল্ট READ COMMITTED বিচ্ছিন্নতা স্তরের আচরণ নির্ধারণ করে। আপনি যদি স্পষ্টভাবে READ_COMMITTED_SNAPSHOT ON নির্দিষ্ট না করেন তবে সমস্ত অন্তর্ভুক্ত লেনদেনের জন্য READ COMMITTED প্রয়োগ করা হয় is এটি READ_COMMITTED_SNAPSHOT OFF (ডিফল্ট) সেট করার অনুরূপ আচরণ তৈরি করে। যখন READ_COMMITTED_SNAPSHOT OFF কার্যকর হয়, তখন ডেটাবেস ইঞ্জিন ডিফল্ট বিচ্ছিন্নতা স্তরটি প্রয়োগ করতে ভাগ করা লকগুলি ব্যবহার করে। আপনি যদি READ_COMMITTED_SNAPSHOT ডাটাবেস বিকল্পটি চালু করে থাকেন, ডাটাবেস ইঞ্জিন ডেটা সুরক্ষার জন্য লক ব্যবহার না করে ডিফল্ট হিসাবে সারি সংস্করণ এবং স্ন্যাপশট বিচ্ছিন্নতা ব্যবহার করে।

তাই হ্যাঁ.

আরসিএসআই সক্ষম করা পাঠকদের সামঞ্জস্যপূর্ণ ডেটা পেতে অনুমতি দেয় এবং লেখকদের দ্বারা অবরুদ্ধ করা হবে না যেগুলি পড়ুন প্রতিশ্রুতিবদ্ধ ব্যবহার করা চালিয়ে যাবে


4

আমি আপনাকে নীচের প্রশ্ন এবং এর উত্তরগুলি পড়ার পরামর্শ দেব: ডাটাবেস লকিংয়ের সমস্যা?

ডিবি স্তরে সঠিক বিচ্ছিন্নতা স্তরের সন্ধান করা এই সমস্যাটি সমাধান করতে সহায়তা করার জন্য আপনি এখনই করতে পারেন যেহেতু ডাটাবেস স্পর্শ করা এবং তাদের কোড পরিবর্তন করা সমস্ত অ্যাপ্লিকেশন পরিবর্তন করা এখন কঠিন। যেহেতু আপনি বলেছিলেন যে "নির্বাচিত বিবৃতিগুলি কল করছে এমন প্রক্রিয়াটির উপরে আমার কোনও নিয়ন্ত্রণ নেই", দ্রুততম উত্তরটি হ'ল ডিবি রিড কমিটেড স্ন্যাপশট বিচ্ছিন্নতা স্তরে স্যুইচ করা হবে, সুতরাং আপনি পড়ার প্রশ্নগুলি স্পর্শ করবেন না। অন্যথায় আপনার সেশনগুলির জন্য স্ন্যাপশট বিচ্ছিন্নতা স্তরটি ব্যবহার করা দরকার যা আপনার বড় লেনদেনের সময় ডেটা পড়ে।

সঠিকটি চয়ন করার বিষয়ে এখানে আরও বিশদ: সারি সংস্করণ -ভিত্তিক বিচ্ছিন্নকরণ স্তর নির্বাচন করা

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.