কোয়েরি পরিকল্পনায় একটি "বিটম্যাপ হিপ স্ক্যান" কী?


113

আমি "বিটম্যাপ হিপ স্ক্যান" এর মূলনীতিটি জানতে চাই, আমি জানি আমি প্রায়শ ORশর্তযুক্ত একটি ক্যোয়ারি চালানোর সময় এটি প্রায়শই ঘটে ।

"বিটম্যাপ হিপ স্ক্যান" এর পিছনের নীতিটি কে ব্যাখ্যা করতে পারে?

উত্তর:


122

সেরা ব্যাখ্যাটি টম লেনের কাছ থেকে আসে , যা আমি ভুল করি না, তবে এটি আলগোরিদমের লেখক। আরও দেখুন Wikipedia নিবন্ধটি

সংক্ষেপে, এটি কিছুটা সিক স্ক্যানের মতো। পার্থক্যটি হ'ল প্রতিটি ডিস্ক পৃষ্ঠায় দেখার পরিবর্তে বিটম্যাপ সূচক স্ক্যান অ্যান্ডস এবং ওআরএস প্রযোজ্য সূচকগুলি একসাথে দেখায় এবং কেবল এটির জন্য প্রয়োজনীয় ডিস্ক পৃষ্ঠাগুলি পরিদর্শন করে।

এটি একটি সূচক স্ক্যানের থেকে পৃথক, যেখানে সূচি সারি সারি সারি পরিদর্শন করা হয় - যার অর্থ কোনও ডিস্ক পৃষ্ঠা একাধিকবার পরিদর্শন করতে পারে।


উত্তর: আপনার মন্তব্যে প্রশ্ন ... হ্যাঁ, এটি ঠিক।

একটি সূচক স্ক্যান একের পর এক সারিতে যাবে, বার বার ডিস্ক পৃষ্ঠাগুলি খুলবে, যতবার প্রয়োজন ততবার (কিছু অবশ্যই মেমরিতে থাকবে তবে আপনি পয়েন্টটি পাবেন)।

একটি বিটম্যাপ সূচক স্ক্যানটি ক্রমান্বয়ে ডিস্ক পৃষ্ঠাগুলির একটি সংক্ষিপ্ত তালিকা খুলবে এবং প্রত্যেকটিতে প্রতিটি প্রযোজ্য সারিটি ধরবে (অতএব তথাকথিত পুনরায় পরীক্ষা কনডিকে আপনি কোয়েরি পরিকল্পনাগুলিতে দেখেন)।

দ্রষ্টব্য, একদিকে যেমন, ক্লাস্টারিং / সারির ক্রমটি কোনও পদ্ধতির সাথে সম্পর্কিত ব্যয়গুলিকে কীভাবে প্রভাবিত করে। যদি সারিগুলি এলোমেলো ক্রমে সমস্ত জায়গায় থাকে তবে একটি বিটম্যাপ সূচকটি সস্তা হবে। (এবং প্রকৃতপক্ষে, তারা যদি সত্যিই পুরো জায়গা জুড়ে থাকে তবে একটি সিক স্ক্যান সবচেয়ে সস্তা হবে, যেহেতু বিটম্যাপ ইন্ডেক্স স্ক্যানটি কোনও ওভারহেড ছাড়াই নয়))


সুতরাং, "বিটম্যাপ হিপ স্ক্যান": একটি পৃষ্ঠা একাধিকবার পরিদর্শন করা যাবে না! তবে "সূচক পারে": একটি পৃষ্ঠা একাধিকবার পরিদর্শন করা যেতে পারে, কারণ সূচি ক্রম অনুসারে সারিতে দেখা হয়।
ফ্রাঙ্ক

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

এছাড়াও আছে index-only scanযখন কেবল সূচকযুক্ত কলামে ক্যোয়ারীতে অ্যাক্সেস করা হয়। এই ক্ষেত্রে, index-only scanহিপ (ডেটা পৃষ্ঠা) ডেটা অ্যাক্সেস করার দরকার নেই: postgresql.org/docs/12/indexes-index-only-scans.html
অ্যালান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.