জিজ্ঞাসা করার সময় এসএসআরএস কি টেবিলটি লক করে রাখে?


9

আমার সিনিয়র ডিবিএ আমাকে বলেছিল যে ডিফল্টরূপে এসকিউএল কোয়েরি কার্যকর করা টেবিলটিকে লক করে না।

আমার এসকিউএল সার্ভার রিপোর্টিং সার্ভিসেস (এসএসআরএস) রিপোর্টে আমার কিছু সমস্যা ছিল যা মনে হচ্ছে লকিংয়ের সাথে কিছু সমস্যা পেয়েছে এবং কিছু ত্রুটি পেয়েছে।

আমি কিছু গুগলিং করেছি তবে কিছুই খুঁজে পাচ্ছিলাম না।

এসএসআরএসের প্রতিবেদনগুলি কী সারণীগুলি জিজ্ঞাসা করা হচ্ছে?

এমএসডিএন ডকুমেন্টেশন রয়েছে যা এই আচরণটি বিশেষভাবে নথিভুক্ত করে?


আমাদেরও একই সমস্যা ছিল। যদিও এটি প্রযুক্তিগতভাবে আপনার প্রশ্নের কোনও উত্তর নয়, আমরা SET TRANSACTION ISOLATION LEVELউদাহরণস্বরূপ ডেটাসেট কোয়েরিগুলি শুরু করে একটি দ্রুত সমাধান করেছি , READ UNCOMMITTEDযদি আপনি কয়েকটি নোংরা পাঠকে ঝুঁকিপূর্ণ মনে করেন না তবে।
জেরোইন

শুধু ভবিষ্যতের জন্য একটি নোট হিসাবে, আপনি পাঠযোগ্য secondaries মধ্যে প্রতিবেদন লোড একটি AlwaysOn সহজলভ্যতা গ্রুপের সঙ্গে SQL এর যে পুনর্নির্দেশ করতে পারেন 2012 msdn.microsoft.com/en-us/library/hh882437.aspx
wBob

উত্তর:


7

সংক্ষিপ্ত উত্তর: না

আর ...

এসকিউএল সার্ভার জানে না যে এটি এসএসআরএস এটি একটি কোয়েরি প্রেরণ করছে। সুতরাং এসএসআরএসের কোয়েরিটি অন্য কোয়েরির মতো চলবে।

এটি সম্ভবত আরও বেশি হতে পারে যে ক্যোয়ারী অপ্টিমাইজার এসএসআরএস কোয়েরির জন্য একটি টেবিল লক ব্যবহার করার সিদ্ধান্ত নিয়েছে। অবশ্যই এটি অন্যরকম সমস্যা হতে পারে তবে এটি একটি আলাদা প্রশ্ন


মিমি সুতরাং এসআরএসএস কি টেবিলটি লক করার চেষ্টা করে যখন এটি তখন কোয়েরি করে না?
মেলাওস

টি-এসকিউএল স্টেটমেন্টটির ফলাফল টি-এসকিউএল স্টেটমেন্টের উপর নির্ভর করে কিছু প্রকারের লক বা অন্যটিতে ঘটে। উক্ত বিবৃতিটি কোথায় উত্পন্ন হয়েছে তার উপর নির্ভর করে না (এসএসআরএস, কোয়েরি উইন্ডো, অ্যাপ্লিকেশন ইত্যাদি)
এরিক হিগিংস

4

আমার সিনিয়র আমাকে জানিয়েছিলেন যে এসকিউএল কোয়েরি কার্যকর করার জন্য ডিফল্টরূপে টেবিলটি লক করে না।

এটা সত্য. তবে এর অর্থ এই নয় যে কোনও ক্যোয়ারী কোনও টেবিল লক করতে পারে না

এসএসআরএসের প্রতিবেদনটি কি জিজ্ঞাসা করা কোনও টেবিলটি লক করবে?

এসএসআরএস কোয়েরি বা ডাটাবেসের বিরুদ্ধে সঞ্চিত পদ্ধতি চালিয়ে রিপোর্টটি রেন্ডার করতে ব্যবহৃত ডেটা পায়।

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

বিবেচনা করুন (উদাহরণস্বরূপ):

  • READ UNCOMMITTEDনোংরা পড়া ঠিক আছে ব্যবহার করে
  • স্ন্যাপশট বিচ্ছিন্নতা স্তর সক্ষম এবং ব্যবহার করে
  • স্ট্যান্ডবাই মোডে লগ শিপিং, এবং কেবল-পঠিত অনুলিপিটির বিরুদ্ধে অনুসন্ধান চালানো

2

আপনি কীভাবে জানবেন যে প্রতিবেদনটি চলমান থাকলে কোনও লক রয়েছে? আমি আপনাকে পরামর্শ দিচ্ছি যে ক্যোয়ারী / সঞ্চিত প্রকল্পটি যা প্রতিবেদনের উত্স, তা পরীক্ষা করে দেখার জন্য এবং এটি নিজে নিজেই ঠিকঠাকভাবে কাজ করছে কিনা তা নিশ্চিত করার পরামর্শ দিচ্ছি।

যদি আপনি নিশ্চিত হন যে উত্স ক্যোয়ারীটি ঠিকঠাক কাজ করছে, তবে এসকিউএল সার্ভার প্রোফাইলার ব্যবহার করে সমস্যাটি চিহ্নিত করার চেষ্টা করুন। নীচের লিঙ্কটি সাহায্য করতে পারে:
/programming/9107383/sql-server-profiler-capture-calls-to-your-databases-stored-procs-during-ssrs


কারণ আমি কয়েকটি ব্রাউজারে প্রতিবেদনটি চালিয়ে যাচ্ছিলাম এবং রিপোর্টটি ত্রুটি পেতেই থাকে যে প্রক্রিয়াটি মৃত লকযুক্ত রয়েছে।
মেলাওস

সেক্ষেত্রে সম্ভবত আপনার প্রতিবেদনটি এমন কোনও ডেটা পড়ার চেষ্টা করছে যা অন্য ব্যবহারকারীর দ্বারা লক করা আছে (যেমন কেউ একই রেকর্ডটি আপডেট করছে) ating আপত্তিজনক ডেটা পড়া ঠিক থাকলে আপনি সমস্ত "নির্বাচন করুন" বিবৃতিতে "কোনও লক ছাড়াই" যুক্ত করতে পারেন।
আকাশ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.