কোনও পিকে সূচীতে কলামগুলির ক্রমের বিষয়টি বিবেচনা করে?
হ্যাঁ এটা করে.
ডিফল্টরূপে, প্রাথমিক কী বাধাটি এসকিউএল সার্ভারে একটি অনন্য ক্লাস্টারড সূচক দ্বারা প্রয়োগ করা হয়। ক্লাস্টার্ড সূচকটি সারণীতে সারিগুলির লজিকাল ক্রম সংজ্ঞায়িত করে । বি-ট্রি ইনডেক্সের উপরের স্তরের প্রতিনিধিত্ব করতে অনেকগুলি অতিরিক্ত সূচক পৃষ্ঠা যুক্ত করা যেতে পারে তবে একটি ক্লাস্টারড ইনডেক্সের সর্বনিম্ন (পাত) স্তরটি কেবলমাত্র ডেটাগুলির লজিকাল ক্রম।
এটি সম্পর্কে পরিষ্কার হতে, কোনও পৃষ্ঠায় সারিগুলি শারীরিকভাবে ক্লাস্টারড ইনডেক্স কী ক্রমে সংরক্ষণ করা হয় না । পৃষ্ঠার মধ্যে পৃথক পৃথক দিকনির্দেশ কাঠামো রয়েছে যা প্রতিটি সারিতে একটি পয়েন্টার সঞ্চয় করে। এই কাঠামোটি ক্লাস্টারড ইনডেক্স কী দ্বারা বাছাই করা হয়েছে। এছাড়াও, প্রতিটি পৃষ্ঠার ক্লাস্টারড ইনডেক্স কী ক্রমে একই স্তরের আগের এবং পরবর্তী পৃষ্ঠায় পয়েন্টার রয়েছে।
একটি ক্লাস্টার্ড প্রাথমিক কী সহ (RowNumber, DataDate)
, সারিগুলি প্রথমে প্রথমে RowNumber
এবং তারপরে যুক্ত করা হয় DataDate
- সুতরাং সমস্ত সারি যেখানে RowNumber = 1
লজিক্যালভাবে একসাথে বিভক্ত হয়, তারপরে সারিগুলি যেখানে থাকে RowNumber = 2
ইত্যাদি।
যখন আপনি নতুন ডেটা যুক্ত করবেন ( RowNumbers
1 থেকে n পর্যন্ত) নতুন সারিগুলি লজিকভাবে বিদ্যমান পৃষ্ঠাগুলির অভ্যন্তরে অন্তর্ভুক্ত, সুতরাং এসকিউএল সার্ভারকে সম্ভবত জায়গা তৈরি করতে অনেকগুলি কাজের বিভাজক পৃষ্ঠা করতে হবে। এই সমস্ত ক্রিয়াকলাপ কোনও লাভের জন্য প্রচুর অতিরিক্ত কাজ (পরিবর্তনগুলি লগ ইন সহ) উত্পন্ন করে।
স্প্লিট পৃষ্ঠাগুলিও প্রায় 50% খালি শুরু করে, অতএব অতিরিক্ত বিভক্তির ফলে কম পৃষ্ঠার ঘনত্বও হতে পারে (প্রতি পৃষ্ঠায় অনুকূলের চেয়ে কম সারি)) কেবলমাত্র ডিস্ক থেকে পড়ার জন্য এই খারাপ সংবাদই নয় (নিম্ন ঘনত্ব = আরও পৃষ্ঠাগুলি পড়তে হবে), নিম্ন-ঘনত্বের পৃষ্ঠাগুলি যখন ক্যাশে থাকে তখন মেমরিতে আরও জায়গা নেয় take
ক্লাস্টারড ইনডেক্সে পরিবর্তন করার (DataDate, RowNumber
অর্থ হ'ল নতুন ডেটা (সম্ভবত, DataDates
বর্তমানে সঞ্চিতের চেয়ে বেশি) নতুন তাজা পৃষ্ঠাগুলিতে ক্লাস্টারড ইনডেক্সের যৌক্তিক প্রান্তে যুক্ত করা হয়েছে। এটি বিভাজনযুক্ত পৃষ্ঠাগুলির অপ্রয়োজনীয় ওভারহেডগুলি সরিয়ে ফেলবে এবং দ্রুত লোড টাইমের ফলস্বরূপ। কম খণ্ডিত ডেটার অর্থ হ'ল পঠন-পূর্বের ক্রিয়াকলাপ (ডিস্ক থেকে পৃষ্ঠাগুলি অগ্রগতি ক্যোয়ারীর প্রয়োজনের আগে পড়া) আরও কার্যকর হতে পারে।
অন্য কিছু না হলে, আপনার অনুসন্ধানগুলি অনুসন্ধানের DataDate
চেয়ে অনেক বেশি সম্ভাবনা রয়েছে RowNumber
। একটি ক্লাস্টারড ইনডেক্স (DataDate, RowNumber
) ইনডেক্স সিক্সকে DataDate
(এবং তারপরে RowNumber
) সমর্থন করে । বিদ্যমান ব্যবস্থা কেবলমাত্র অনুসন্ধানগুলি সমর্থন করে RowNumber
(এবং কেবলমাত্র তখন, সম্ভবত, DataDate
)। DataDate
প্রাথমিক কী পরিবর্তন হয়ে গেলে আপনি বিদ্যমান নন-ক্ল্লাস্টার্ড সূচকটি ভালভাবে ফেলে দিতে পারবেন । ক্লাস্টারড ইনডেক্সটি তার পরিবর্তিত নন-ক্লাস্টারড ইনডেক্সের চেয়ে আরও বিস্তৃত হবে, সুতরাং আপনার কার্য সম্পাদনযোগ্যতা গ্রহণযোগ্য থাকবে কিনা তা নিশ্চিত করার জন্য আপনার পরীক্ষা করা উচিত।
যখন নতুন ডেটা আমদানি করার সময় bcp
আপনি উচ্চতর পারফরম্যান্স পেতে পারেন যদি আমদানি ফাইলের মধ্যে থাকা ডেটা ক্লাস্টারড ইনডেক্স কী (আদর্শভাবে (DataDate, RowNumber
) দ্বারা সাজানো হয় এবং আপনি bcp
বিকল্পটি নির্দিষ্ট করে থাকেন :
-h "ORDER(DataDate,RowNumber), TABLOCK"
সেরা ডেটা লোডিং পারফরম্যান্সের জন্য, আপনি নূন্যতম-লগ ইনড্রেস্টগুলি অর্জন করার চেষ্টা করতে পারেন। আরও তথ্যের জন্য, দেখুন: