আমার একটি ক্যোয়ারী রয়েছে যা লেনদেনের মাঝখানে অনেক সময় নিচ্ছে। আমি যখন wait_type
প্রক্রিয়াটি পাই তখন তা হয় PAGEIOLATCH_SH
।
এই অপেক্ষা ধরণের অর্থ কী এবং কীভাবে এটি সমাধান করা যায়?
উত্তর:
মাইক্রোসফ্ট ডকুমেন্টেশন থেকে :
PAGEIOLATCH_SH
I/O
অনুরোধে থাকা কোনও বাফারের জন্য কোনও কাজ যখন কোনও ল্যাচের অপেক্ষায় থাকে তখন ঘটে । ল্যাচ অনুরোধটি ভাগ করা মোডে। দীর্ঘ অপেক্ষার ফলে ডিস্কের সাবসিস্টেমের সমস্যা দেখা দিতে পারে।
অনুশীলনে, প্রায় সর্বদা বড় টেবিলের উপর বড় স্ক্যানগুলির কারণে এটি ঘটে। সূচি দক্ষতার সাথে ব্যবহার করে এমন প্রশ্নের ক্ষেত্রে এটি প্রায়শই ঘটে না।
আপনার প্রশ্নটি যদি এর মতো হয়:
Select * from <table> where <col1> = <value> order by <PrimaryKey>
, আপনার একটি যৌগিক সূচক চালু আছে তা পরীক্ষা করুন (col1, col_primary_key)
।
আপনার যদি এটি না থাকে তবে আপনার INDEX SCAN
যদি PRIMARY KEY
নির্বাচিত হয় তবে একটি পূর্ণ প্রয়োজন হয় বা একটি SORT
সূচকটি col1
বেছে নেওয়া হয়।
উভয়ই I/O
বড় টেবিলগুলিতে খুব ডিস্ক গ্রাসকারী অপারেশন।
SQL for Smarties
এবং বিশেষত Thinking in Sets
) এবং আমার ব্লগ অবশ্যই
PAGEIOLATCH_SH
অপেক্ষার প্রকারটি সাধারণত খণ্ডিত বা অপরিশোধিত সূচকের ফলাফল হিসাবে আসে।
অতিরিক্ত PAGEIOLATCH_SH
অপেক্ষা অপেক্ষা করার কারণগুলি হ'ল :
উচ্চ PAGEIOLATCH_SH
অপেক্ষা অপেক্ষা রাখার চেষ্টা ও সমাধান করার জন্য , আপনি যাচাই করতে পারেন:
PAGEIOLATCH_SH
অপেক্ষা ধরণের মূল কারণ হিসাবে খুঁজে পাওয়া যায়সর্বদা মনে রাখবেন যে উচ্চতর সুরক্ষা মিররিংয়ের ক্ষেত্রে বা ওভারলন অন এজি-তে সিঙ্ক্রোনাস-কমিটের প্রাপ্যতার ক্ষেত্রে বর্ধিত / অতিরিক্ত PAGEIOLATCH_SH
হওয়া আশা করা যায়।
অতিরিক্ত নিবন্ধের এসকিউএল সার্ভার PAGEIOLATCH_SH অপেক্ষার প্রকারগুলি পরিচালনা করে নিবন্ধে আপনি এই বিষয়টি সম্পর্কে আরও বিশদ জানতে পারেন