উত্তর:
তারা একই জিনিস। আপনি যদি set transaction isolation level
বিবৃতিটি ব্যবহার করেন তবে এটি সংযোগের সমস্ত টেবিলের জন্য প্রযোজ্য, সুতরাং আপনি যদি কেবলমাত্র nolock
এক বা দুটি টেবিলের উপর একটি ব্যবহার করতে চান তবে এটি ব্যবহার করুন; অন্যথায় অন্যটি ব্যবহার করুন।
দুজনেই আপনাকে নোংরা পড়বে। আপনি যদি এটির সাথে ঠিক থাকেন তবে সেগুলি ব্যবহার করুন। যদি আপনার নোংরা পাঠ্য না থাকে তবে তার পরিবর্তে বিবেচনা করুন snapshot
বা serializable
ইঙ্গিত করুন।
উইথ (নোলক) একটি টেবিল স্তরের একটি ইঙ্গিত। সংযোগ প্রভাবিত করে READ_UNCOMMITTED এ লেনদেনের বিচ্ছিন্নতা স্তর সেট করা। পার্থক্য সুযোগের দিক দিয়ে। এসকিউএল সার্ভার ডকুমেন্টেশনে এখানে READUNCOMMITTED এবং NOLOCK দেখুন:
http://technet.microsoft.com/en-us/library/ms187373.aspx
ট্রানসেকশন আইসোলেশন লেভেলের জন্য: http://technet.microsoft.com/en-us/library/ms173763.aspx
গাইডলাইন হিসাবে ... স্ট্যাকওভারফ্লো এবং বৈদ্যুতিক আন্তঃবিবাহ থেকে একটি এলোমেলো অনুসন্ধান ...
আমার জ্ঞানের কাছে কেবলমাত্র পার্থক্য হ'ল স্ট্রোমি বলেছিলেন প্রভাবগুলির সুযোগ। কোনও টেবিলের সাথে নলক ইঙ্গিত এবং অধিবেশনটিতে অননুমোদিত পাঠান।
যে সমস্যাগুলি ঘটতে পারে সেগুলি সম্পর্কে এটি ধারাবাহিকতা। আপনি যদি যত্নশীল হন তবে সচেতন হন যে আপনি নোংরা পাঠ্য যা পেয়েছিলেন যা অন্য তথ্যগুলিকে ভুল তথ্যের দ্বারা চালিত করার জন্য প্রভাবিত করতে পারে get
আমি ব্যক্তিগতভাবে মনে করি না যে আমি এ থেকে কোনও সমস্যা দেখেছি তবে আমি কীভাবে নলক ব্যবহার করি তার কারণে এটি আরও বেশি হতে পারে। আপনার সচেতন হওয়া দরকার যে এমন পরিস্থিতিতে রয়েছে যেখানে এটি ব্যবহার করা ঠিক হবে। পরিস্থিতি যেখানে আপনি বেশিরভাগই কোনও টেবিলে নতুন ডেটা যুক্ত করছেন তবে একটি ডেটা দৃশ্যের জন্য যাচাই করার জন্য পিছনে আসার মতো আরও একটি প্রক্রিয়া রয়েছে। এটি সম্ভবত ঠিক থাকবে কারণ প্রধান ফ্লোতে কোনও পড়ার সময় ফিরে যাওয়া এবং সারিগুলি আপডেট করা অন্তর্ভুক্ত নয়।
এছাড়াও আমি বিশ্বাস করি যে এই দিনগুলিতে আপনার বহু সংস্করণ কনকুরન્સી নিয়ন্ত্রণে থাকা উচিত into আমি বিশ্বাস করি যে তারা 2005 এ এটি যুক্ত করেছে এবং এটি পাঠকদের ডাটাবেসগুলির স্ন্যাপশট ব্যবহারের মাধ্যমে পাঠককে ব্লক করা থেকে বিরত রাখতে সহায়তা করে। আমি একটি লিঙ্ক অন্তর্ভুক্ত করব এবং আরও গবেষণা পাঠকের কাছে ছেড়ে দেব:
যেহেতু প্রতিটি টেবিলের জন্য আপনার সাথে উইথ (নলক) ব্যবহার করতে হবে এটি প্রতিটি FROM বা JOIN ধারাতে এটি লিখে বিরক্তিকর হতে পারে। তবে একে "নোংরা" পড়া বলা হওয়ার কারণ রয়েছে। সুতরাং আপনি কখন করবেন তা আপনার সত্যই জানা উচিত, এবং এটি সেশনের সুযোগের জন্য ডিফল্ট হিসাবে সেট করা হয়নি। কেন?
একটি উইথ (নলক) ভুলে যাওয়া আপনার প্রোগ্রামটিকে খুব নাটকীয় উপায়ে প্রভাবিত করতে পারে না, তবে যেখানে আপনি নন এমন নোংরা পাঠ করছেন এমন নির্দিষ্ট পরিস্থিতিতে পার্থক্য আনতে পারে।
সুতরাং নির্বাচিত বর্তমান ডেটাটিকে ভুল হওয়ার অনুমতি দেওয়া হলে WITH (NOLOCK) ব্যবহার করুন, কারণ এটি পরে আবার ঘুরিয়ে দেওয়া হতে পারে। আপনি কর্মক্ষমতা বাড়াতে চাইলে এটি বেশিরভাগ ক্ষেত্রে ব্যবহৃত হয় এবং আপনার অ্যাপ্লিকেশন প্রসঙ্গে প্রয়োজনীয়তা এটিকে ঝুঁকি নিতে দেয় যে অসঙ্গতিপূর্ণ ডেটা প্রদর্শিত হচ্ছে। তবে আপনার বা দায়িত্বে থাকা কারও সাথে WITH (NOLOCK) ব্যবহারের সিদ্ধান্তের পক্ষে মতামত ও বিবেকের বিষয়টি বিবেচনা করতে হবে।
REPEATABLE READ
তার পরিবর্তে বিবেচনা করুনSERIALIZABLE
।SERIALIZABLE
সত্যিই সীমাবদ্ধ এবং এটি কখনও ব্যবহার করা উচিত নয় (উদাহরণস্বরূপ কিছু সমালোচনামূলক আর্থিক অ্যাপ্লিকেশনগুলিতে বাদে)।