এসকিউএল সার্ভারে PAGEIOLATCH_SH অপেক্ষার প্রকারটি কী?


98

আমার একটি ক্যোয়ারী রয়েছে যা লেনদেনের মাঝখানে অনেক সময় নিচ্ছে। আমি যখন wait_typeপ্রক্রিয়াটি পাই তখন তা হয় PAGEIOLATCH_SH

এই অপেক্ষা ধরণের অর্থ কী এবং কীভাবে এটি সমাধান করা যায়?

উত্তর:


118

মাইক্রোসফ্ট ডকুমেন্টেশন থেকে :

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বড় টেবিলগুলিতে খুব ডিস্ক গ্রাসকারী অপারেশন।


এটি একটি আসল সহজ ক্যোয়ারী। <table> থেকে <নির্বাচন করুন যেখানে <col1> = <মূল্য >> <প্রাইমারিকি> দ্বারা আদেশ করুন। আমাদের কাছেও মাত্র 1 টিতে একটি সূচক রয়েছে এবং সূচকটি পুনর্নির্মাণের চেষ্টা করেছি।
রায়ান

আপনার কী ডিস্ক নিবিড়, কোনটি পূর্ণ সূচী স্ক্যানের প্রয়োজন, কীসের জন্য বাছাই করা দরকার তা বোঝার জন্য কিছু সংস্থান প্রস্তাব দিতে পারেন
গ্রেগ বি

4
@ গ্রেগবি: আপনার যদি ইতিমধ্যে এসকিউএল সম্পর্কে প্রাথমিক জ্ঞান থাকে তবে আপনি জো সেল্কোর বইগুলি (বিশেষত SQL for Smartiesএবং বিশেষত Thinking in Sets) এবং আমার ব্লগ অবশ্যই
পড়তে পারতেন

4
এটি আমাদের ডিস্ক সাব সিস্টেমে একটি ত্রুটি নির্দেশ করে। একটি RAID ডিস্ক মনিটরিং সিস্টেমটি ট্রিগার না করে ব্যর্থ হয়েছিল। ইভেন্টের লগগুলি পরীক্ষা করে দেখা গেছে যে স্মার্ট প্রকৃতপক্ষে একটি ড্রাইভকে খারাপ হিসাবে চিহ্নিত করেছে।
গোমিবুশি

7

PAGEIOLATCH_SH অপেক্ষার প্রকারটি সাধারণত খণ্ডিত বা অপরিশোধিত সূচকের ফলাফল হিসাবে আসে।

অতিরিক্ত PAGEIOLATCH_SHঅপেক্ষা অপেক্ষা করার কারণগুলি হ'ল :

  • আই / ও সাবসিস্টেমের সমস্যা আছে বা এটি কনফিগার করা হয়েছে
  • উচ্চ I / O ক্রিয়াকলাপ তৈরি করে এমন অন্যান্য প্রক্রিয়া দ্বারা ওভারলোডড I / O সাবসিস্টেম
  • খারাপ সূচক পরিচালনা
  • যৌক্তিক বা শারীরিক ড্রাইভের ভুল ধারণা
  • নেটওয়ার্ক ইস্যু / বিলম্ব
  • স্মৃতির চাপ
  • সিঙ্ক্রোনাস মিররিং এবং অলওয়েজ অন এজি

উচ্চ PAGEIOLATCH_SHঅপেক্ষা অপেক্ষা রাখার চেষ্টা ও সমাধান করার জন্য , আপনি যাচাই করতে পারেন:

  • এসকিউএল সার্ভার, ক্যোয়ারী এবং সূচকগুলি প্রায়শই এটি অতিরিক্ত PAGEIOLATCH_SHঅপেক্ষা ধরণের মূল কারণ হিসাবে খুঁজে পাওয়া যায়
  • যেকোন আই / ও সাবসিস্টেম সমস্যা সমাধানে ঝাঁপ দেওয়ার আগে মেমরির চাপের জন্য

সর্বদা মনে রাখবেন যে উচ্চতর সুরক্ষা মিররিংয়ের ক্ষেত্রে বা ওভারলন অন এজি-তে সিঙ্ক্রোনাস-কমিটের প্রাপ্যতার ক্ষেত্রে বর্ধিত / অতিরিক্ত PAGEIOLATCH_SHহওয়া আশা করা যায়।

অতিরিক্ত নিবন্ধের এসকিউএল সার্ভার PAGEIOLATCH_SH অপেক্ষার প্রকারগুলি পরিচালনা করে নিবন্ধে আপনি এই বিষয়টি সম্পর্কে আরও বিশদ জানতে পারেন

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