পৃষ্ঠাগুলি প্রয়োজন অনুসারে মেমোরিতে পড়া হয়, যদি কোনও নিখরচায় মেমরি পাওয়া যায় না, তবে প্রাচীনতম মোড মোড পৃষ্ঠাটি আগত পৃষ্ঠার সাথে প্রতিস্থাপন করা হবে।
এর অর্থ আপনি যদি এমন কোনও কোয়েরি কার্যকর করেন যা মেমরির সাথে ফিট করার চেয়ে আরও বেশি ডেটা প্রয়োজন, অনেক পৃষ্ঠাগুলি মেমরিতে খুব স্বল্প জীবনযাপন করবে, যার ফলে প্রচুর আই / ও হয়।
উইন্ডোজ পারফরম্যান্স মনিটরে "পেজ লাইফ প্রত্যাশা" কাউন্টারটি দেখে আপনি এই প্রভাবটি দেখতে পারেন। সেই কাউন্টার সম্পর্কে কিছু দুর্দান্ত বিবরণের জন্য https://sqlperformance.com/2014/10/sql-performance/knee-jerk-page-Live-expectancy দেখুন ।
মন্তব্যে, আপনি যখন জিজ্ঞাসার ফলাফলগুলি উপলব্ধ বাফার জায়গার চেয়ে বড় হয় তখন বিশেষত কী ঘটেছিল তা জিজ্ঞাসা করেছিলেন । সহজ উদাহরণটি ধরুন, select * from some_very_big_table;
- ধরুন টেবিলটি 32 গিগাবাইট, এবং 24 max server memory (MB)
জিবিতে কনফিগার করা আছে। সমস্ত 32 জিবি টেবিল ডেটা একবারে পৃষ্ঠার বাফারের পৃষ্ঠাগুলিতে পাঠানো হবে, ল্যাচড, নেটওয়ার্ক প্যাকেটে ফর্ম্যাট করা এবং তারের জুড়ে প্রেরণ করা। এটি পৃষ্ঠায় পৃষ্ঠায় ঘটে; আপনার একই সাথে 300 টি অনুসন্ধান চলতে পারে এবং ধরেই নেওয়া হচ্ছে যে সেখানে কোনও ব্লক হচ্ছে না, প্রতিটি প্রশ্নের জন্য ডেটা পৃষ্ঠা বাফার স্পেসে পড়বে, একবারে একটি পৃষ্ঠা, এবং তারের উপরে ক্লায়েন্ট যত তাড়াতাড়ি পারত অনুরোধ এবং ডেটা গ্রাস। একবার প্রতিটি পৃষ্ঠার সমস্ত ডেটা তারে প্রেরণ করা হয়ে গেলে পৃষ্ঠাটি আনচলাচলে হয়ে যায় এবং খুব দ্রুত ডিস্ক থেকে অন্য কোনও পৃষ্ঠা দ্বারা প্রতিস্থাপন করা হবে।
আরও জটিল ক্যোয়ারির ক্ষেত্রে, উদাহরণস্বরূপ কয়েকটি টেবিল থেকে ফলাফল একত্রিত করার জন্য বলুন, পৃষ্ঠাগুলি ক্যোয়ারী প্রসেসরের দ্বারা প্রয়োজনীয় হিসাবে ঠিক উপরের মতোই মেমরিতে টানা হবে। ফলাফলগুলি গণনা করার জন্য যদি ক্যোয়ারী প্রসেসরের অস্থায়ী কাজের জায়গার প্রয়োজন হয় তবে এটি জানতে পারবে যে এটি যখন ক্যোয়ারির জন্য কোনও পরিকল্পনা তৈরি করে এবং এসকিউএলওএস থেকে কাজের জায়গার (মেমরি) অনুরোধ করবে । SQLOS কিছু সময়ে হবে (অভিমানী এটা না সময় ), ক্যোয়ারী প্রসেসর, যা বিন্দু ক্যোয়ারী প্রক্রিয়াকরণ পুনরায় শুরু হবে যে স্মৃতি প্রদান। যদি এসকিউএলএস থেকে কত মেমরি জিজ্ঞাসা করা উচিত তার অনুমানের ক্ষেত্রে কোয়েরি প্রসেসর যদি ভুল করে, তবে এটি "ডিস্কে স্পিল" চালানোর প্রয়োজন হতে পারেঅপারেশন, যেখানে একটি মধ্যবর্তী আকারে ডেটা অস্থায়ীভাবে টেম্পডবিতে লেখা হয়। টেমপ্যাডবিতে যে পৃষ্ঠাগুলি লেখা হয়েছে সেগুলি অন্য পৃষ্ঠাগুলির স্মৃতিতে পড়ার জন্য জায়গা তৈরি করার জন্য টেম্পডিবিতে লেখা হয়ে গেলে তা আনল্যাচ করা হবে। অবশেষে ক্যোয়ারী প্রক্রিয়াটি ফ্রি চিহ্নিত হিসাবে চিহ্নিত বাফারের পৃষ্ঠাগুলিতে ল্যাচিং ব্যবহার করে, টেম্পিডবিতে সঞ্চিত ডেটাতে ফিরে আসবে।
আমি নিঃসন্দেহে উপরের সারসংক্ষেপে খুব প্রযুক্তিগত বিশদগুলির একটি লোড মিস করছি, তবে আমি মনে করি যে এসকিউএল সার্ভার মেমরির সাথে ফিট হওয়ার চেয়ে আরও বেশি ডেটা প্রসেস করতে পারে তার সংক্ষিপ্তসারটি গ্রহণ করে।