ভরাণ ফ্যাক্টরের উপর ভিত্তি করে সূচকগুলিতে ডেটার আচরণ


14

ধরা যাক আপনার একটি ডাটাবেস রয়েছে যেখানে ডিফল্ট ফিল ফ্যাক্টরটি 20 থাকে Whenever যখনই ডেটা isোকানো হয় তখন এটি কেবল 20% পর্যন্ত ভরাট পৃষ্ঠাগুলি তৈরি করে?

আমার বোধগম্যতা থেকে, যখন তথ্য whenোকানো হবে তখন পৃষ্ঠাগুলিতে প্রায় 20% ডেটা থাকবে। যখন ডেটা আপডেট করা হয়, তবে এটি সূচকের 20% এরও বেশি প্রসারিত হবে, এটি পূরণ করা এবং একটি পৃষ্ঠা বিভক্ত করা অবধি, তাই না?

উত্তর:


16

ফিল ফ্যাক্টরটি কেবলমাত্র খেলায় আসে যখন কোনও সূচি তৈরি করা হয় বা পুনর্নির্মাণ করা হয়। এই ক্রিয়াকলাপগুলির মধ্যে পাতার স্তর পৃষ্ঠাগুলির সূচকগুলির জন্য ভোগের পরিমাণ। ( প্রভাবিত পৃষ্ঠার স্তরের আরও স্পষ্টতার জন্য নীচের নোটটি দেখুন )

যখন ডেটাতে একটি DML কমান্ড আছে ( INSERT, UPDATE, এবং / অথবা DELETE), এটা সংশ্লিষ্ট ক্ষতিগ্রস্ত ইনডেক্স কি হবে। অন্য কথায়, আপনার যদি এমন একটি পৃষ্ঠা থাকে যা 20% ভরা থাকে এবং আপনি সেই পৃষ্ঠায় ডেটা .োকান, পৃষ্ঠায় 20% এর বেশি ডেটা থাকবে (আসুন উদাহরণস্বরূপ 35% বলি)। অন্য একটি সন্নিবেশ করান, এখন পৃষ্ঠাটি% 64% ভরাট। সূচকটি পুনর্নির্মাণ করুন এবং পাতার স্তরের পৃষ্ঠাগুলিতে এখন আপনার নির্দিষ্ট করা স্পেস শতাংশ (বা সার্ভারের জন্য স্পষ্টতই ডিফল্ট মান) থাকবে।

( নোট , যখন আপনি নির্দিষ্ট না PAD_INDEXহতে ON, ভরাট ফ্যাক্টর শুধুমাত্র পাত স্তর পৃষ্ঠাগুলি প্রয়োগ করা হয়। কিন্তু যখন আপনি সেট PAD_INDEX = ON, ভরাট ফ্যাক্টর সূচক অন্তর্বর্তী পর্যায়ের পৃষ্ঠাগুলির জন্য বিবেচনায় নেয়া করা হবে না। ডিফল্টOFF )

ফিল ফ্যাক্টরটি সামঞ্জস্য করার কারণ (ডিফল্ট 100/0 ব্যবহার করার পরিবর্তে) যাতে ডেটা tingোকানো বা আপডেট করার সময় আপনি পৃষ্ঠা বিভক্তিকে হ্রাস করুন। তবে মনে রাখবেন, কিছুই নিখরচায় নয়। ফিল ফ্যাক্টর যত কম হবে, তত বেশি স্পেস ডেটা সাধারণত গ্রহণ করবে। আপনি যদি আপনার সূচকের জন্য 80% মুক্ত পৃষ্ঠাগুলি রাখেন তবে তারা তুলনামূলকভাবে বেশি পরিমাণে ডিস্কের জায়গা ব্যবহার করবে, যা আরও পড়তে পারে।

আমার বোধগম্যতা থেকে, যখন তথ্য whenোকানো হবে তখন পৃষ্ঠাগুলিতে প্রায় 20% ডেটা থাকবে। যখন ডেটা আপডেট করা হয়, তবে এটি সূচকের 20% এরও বেশি প্রসারিত হবে, এটি পূরণ করা এবং একটি পৃষ্ঠা বিভক্ত করা অবধি, তাই না?

ডেটা isোকানো হলে এটি উপযুক্ত পৃষ্ঠায় উপযুক্ত সূচীতে intoোকানো হবে। এটি এবং সম্ভবত সম্ভবত পৃষ্ঠার ভরাট ফ্যাক্টরের চেয়ে বেশি ব্যবহারের কারণ হতে পারে।

পূর্ণ সূচী পৃষ্ঠায় নতুন ডেটা যুক্ত করা হলে একটি পৃষ্ঠার বিভাজন ঘটবে। এসকিউএল সার্ভার তারপরে পৃষ্ঠাটি বিভক্ত করবে এবং পুরো পৃষ্ঠা থেকে প্রায় অর্ধেক ডেটা নতুন পৃষ্ঠায় রাখবে। আবার, ফিল ফ্যাক্টর এখানে কার্যকর হয় না।

ফিল ফ্যাক্টর কম করার বৈধ কারণ হ'ল পৃষ্ঠা বিভাজন হ্রাস করা, সুতরাং সূচী পৃষ্ঠার খণ্ডনকে হ্রাস করা।


3
স্থান বাড়ানোর জন্য বা বরাদ্দ দেওয়ার জন্য প্রয়োজনীয় আইও অপারেশনগুলিও এটি হ্রাস করে।
জেএনকে

ঠিক আছে, সুতরাং আচরণটি কীভাবে কাজ করে তা নিয়ে আমি ভুল ছিলাম। এই ধরনের একটি উত্তরের জন্য আপনাকে ধন্যবাদ!
ডিফোর্ক 42

1
@ ডিফোর্ক ৪৪ কোনও সমস্যা নেই, সাহায্য করে খুশি।
টমাস স্ট্রিংগার

আমরা কি এর সংক্ষিপ্তসারটি বলতে পারি যে একটি কম ফিল ফ্যাক্টর সেট করার ফলে পাঠাগুলি ধীর হবে (আরও পৃষ্ঠাগুলি) তবে গতি সন্নিবেশ (কম বিভাজন)?
সমস্ত ব্যবসায়ের জন

2
@ জন: উচ্চ ফিলফ্যাক্টর সূচক টুকরা সহ এবং ধীরে ধীরে পড়ে reads প্রতিটি সূচকের জন্য একটি অনুকূল ফিলফ্যাক্টর রয়েছে - এর উপরে এবং নীচে এটি ধীর গতিতে লেখেন এবং পড়েন। অনুকূলতা ব্যবহারের নিদর্শনগুলি (প্রতিদিন কতগুলি সন্নিবেশ করানো হয়), রক্ষণাবেক্ষণের ধরণগুলি (এটি কতবার পুনর্নির্মাণ করে), ডেটা (কী অনন্যটি কী তা কী) নির্ভর করে। অ-অনন্য সূচকগুলিতে আরও মুক্ত স্থানের প্রয়োজন হয় (কম ফিলফ্যাক্টর)।
wqw
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.