ফ্র্যাগমেন্টেশন মানে একটি গাদা
ডিএমভি কে avg_fragmentation_in_percentজিজ্ঞাসাবাদ করে আপনি কলাম থেকে যে হ্যাপে বিভাজন মান পেয়েছেন তা sys.dm_db_index_physical_statsউল্লেখ করে
ইনডেক্সের জন্য যৌক্তিক বিভাজন বা IN_ROW_DATA বরাদ্দ ইউনিটে হিপগুলির জন্য বিস্তৃত বিভাজন ।
আরও একই বিওএল বলে যে
এটি একটি স্তূপের পাতাগুলিতে বহির্মুখী অর্ডার-এর পরিমাণ শতাংশ। অর্ড-অফ-অর্ডার সীমাটি হ'ল এমন একটি যা হ'ল বর্তমান পৃষ্ঠার সীমাটি পূর্ববর্তী পৃষ্ঠাটি রয়েছে তার পরে শারীরিকভাবে পরবর্তী সীমা নয়।
সুতরাং আপনি দেখতে পাচ্ছেন যে এটি হিপগুলিতে বরাদ্দকৃত পৃষ্ঠাগুলিতে উপস্থিত নিখরচায় জায়গা নয় বরং খণ্ডগুলিকে তৈরি করা পৃষ্ঠাগুলির বিভিন্ন ক্রম ।
এটি ছোট পরীক্ষা দ্বারা প্রদর্শিত হতে পারে। আসুন আমরা একটি হিপ টেবিল তৈরি করি এবং এর মধ্যে কিছু রেকর্ড সন্নিবেশ করি এবং তারপরে খণ্ডগুলি পরীক্ষা করি।
create table dbo.HeapTest
(
Id INT not NULL Default (1),
Col1 char(5000) Not null Default ('Heaps Are Cool')
)
SET NOCOUNT ON
Insert into dbo.Heaptest default values
go 50
select index_type_desc,avg_fragmentation_in_percent,fragment_count,
avg_page_space_used_in_percent,record_count
from sys.dm_db_index_physical_stats(db_id(),object_id('dbo.HeapTest','U'),0,default,'detailed')
সুতরাং হ্যাপ টেবিলটি এতে 50 টি রেকর্ড সহ তৈরি করা হয়। ডিএমভি sys.dm_db_index_physical পরিসংখ্যান পরে ভগ্নাংশটি দেখতে কেমন

আপনি avg_fragmentation_in_percentকলামের মান 33% দেখতে পাবেন । এখন আসুন দেখুন কীভাবে পৃষ্ঠাগুলি সাজানো আছে। অননুমোদিত জিজ্ঞাসা ব্যবহার করে এটি করা যেতে পারে %%lockres%%। কোয়েরি হবে
SELECT %%lockres%%, * FROM dbo.HeapTest;
এবং নীচে আউটপুট মত দেখাচ্ছে। এর কেবলমাত্র প্রাসঙ্গিক অংশ সংযুক্ত করা। আমরা আমাদের dbo.HeapTest টেবিলে 50 টি সারি sinceোকানোর পরে ক্যোয়ারী 50 টি সারি তৈরি করেছে produced

এটি যা বলে প্রথম পৃষ্ঠায় আইডি রয়েছে 197যা পরের পৃষ্ঠায় আইডি রয়েছে 242পরবর্তী পৃষ্ঠাগুলিতে আমরা পৃষ্ঠা আইডিতে পৌঁছা পর্যন্ত অবিচ্ছিন্ন আইডি থাকে 264কারণ এর পরে আমরা পৃষ্ঠা আইডি পাই 280। পৃষ্ঠার আইডি নম্বরগুলিতে এই ঝাঁপটি আসলে ভগ্নাংশের কারণ।
পাছে rebuিপি পুনর্নির্মাণ করুন এবং খণ্ডগুলি এবং পৃষ্ঠাগুলি কীভাবে সাজানো হয়েছে তা দেখতে আবার কমান্ডটি চালান। আমরা যেমন খণ্ডন পাই

আপনি খণ্ড খণ্ড দেখতে পারেন এখন 14%।
আসুন পৃষ্ঠা নম্বর বরাদ্দ করা যাক

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

খণ্ড খণ্ড বৃদ্ধি কেন
খণ্ড খণ্ডের কারণ কী ঘটতে পারে সে সম্পর্কে আমরা এটিকে সত্যায়ন করতে পারি যে পৃষ্ঠাগুলি যখন গাদাতে বরাদ্দ পেয়েছিল তখন তারা অবিচ্ছিন্ন থাকত না, যেমন আপনি উপরে দেখেছেন যে খণ্ড খণ্ডিত মানটি কী কারণে বৃদ্ধি পেয়েছে পৃষ্ঠাগুলিতে আইডি বরাদ্দকৃত পৃষ্ঠাগুলিতে বরাদ্দ ছিল in
মাথার পিছনে আপনার এও মনে রাখা উচিত যে হ্যাপের জন্য ফ্র্যাগমেন্টেশন শব্দের কোনও অর্থ নেই, আপনি কীভাবে অর্ডার না করা পৃষ্ঠাগুলির জন্য গুচ্ছ বিভাজনকে সংজ্ঞায়িত করবেন।
ফ্র্যাগমেন্টেশন সম্পর্কে সত্যই চিন্তিত
যদি আপনি সত্যিই এমন দৃশ্যের মুখোমুখি হন যেখানে হিপ টেবিলটি খণ্ডিত হয় এবং কোয়েরিগুলি ধীর করে দেয় তবে এটি পুনর্নির্মাণের চেয়ে টেবিলে একটি ক্লাস্টারড সূচক তৈরি করা ভাল better কারণটি হ'ল যখন আপনি সমস্ত অন্তর্নিহিত নন-ক্লাস্টারযুক্ত সূচকগুলি পুনরায় তৈরি করেন তখন পুনর্নির্মাণের প্রক্রিয়াটি আরও বেশি সময় নেয়, প্রচুর সংস্থান ব্যবহার করে এবং লেনদেন লগটি স্ফীত করে দেয়। একটি উত্পাদন সিস্টেমে এটি সর্বদা এড়াতে চেষ্টা করবে। পল এটি সম্পর্কে তার মিথ কাহিনী covered াকা সম্পর্কে আচ্ছাদন ।
PS: অনুগ্রহ করে প্রোডাকশন সিস্টেমে অননুমোদিত কমান্ড ব্যবহার করবেন না। এটি ছিল কেবল প্রদর্শনের জন্য।