এসএসডি ব্যবহার করার সময় ডিবি ডিজাইনে ক্লাস্টারড ইনডেক্সের ধারণাটি কি সংবেদনশীল?


44

এসকিউএল সার্ভারের ডেটা স্কিমা এবং পরবর্তী প্রশ্নগুলি, স্প্রোকস, ভিউ ইত্যাদির নকশা তৈরি করার সময় কি ক্লাস্টারড ইনডেক্সের ধারণা এবং ডিস্কে ডেটা অর্ডার করা এসএসডি প্ল্যাটফর্মগুলিতে স্পষ্টভাবে তৈরি ডিবি ডিজাইনগুলির জন্য বিবেচনা করার কোনও ধারণা রাখে ?

http://msdn.microsoft.com/en-us/library/aa933131(v=sql.80).aspx
"একটি ক্লাস্টারড ইনডেক্স কোনও টেবিলে ডেটার শারীরিক ক্রম নির্ধারণ করে।"

একটি শারীরিক ডিস্ক প্ল্যাটফর্মে, তাদের বিবেচনা করার নকশাটি "অনুক্রমিক" সারিগুলি পুনরুদ্ধার করার জন্য উপাত্তের দৈহিক স্ক্যান হিসাবে আমার কাছে বোধগম্য হয় যা টেবিলের মাধ্যমে অনুসন্ধানের চেয়ে আরও পারফরম্যান্স হতে পারে।
একটি এসএসডি প্ল্যাটফর্মে, সমস্ত ডেটা পড়ার অ্যাক্সেস অভিন্ন সন্ধান ব্যবহার করে। "ফিজিকাল অর্ডার" এর কোনও ধারণা নেই এবং ডেটা পঠনগুলি "সিক্যুয়াল" নয় এই অর্থে যে বিটগুলি একই সিলিকনের টুকরোতে সংরক্ষণ করা হয়।

সুতরাং, কোনও অ্যাপ্লিকেশন ডাটাবেস ডিজাইনের প্রক্রিয়াতে কি ক্লাস্টারড ইনডেক্স বিবেচনা এই প্ল্যাটফর্মের সাথে সম্পর্কিত?

আমার প্রাথমিক ধারণাটি হ'ল এটি নয় কারণ "অর্ডার করা ডেটা" ধারণাটি এসএসডি স্টোরেজের ক্ষেত্রে প্রযোজ্য নয় এবং পুনরুদ্ধার অপ্টিমাইজেশন সন্ধান করুন।

সম্পাদনা: আমি জানি যে এসকিউএল সার্ভারটি একটি তৈরি করবে , আমি ডিজাইন / অপ্টিমাইজেশনের সময় এটি সম্পর্কে ভাবনাটি বোধ করে কিনা তা নিয়ে আমি কেবল দর্শন করছি।


1
এই সাধারণ ক্ষেত্রের কিছু কাগজপত্র (আপনার প্রশ্নের সাথে সুনির্দিষ্ট নয়) কি ক্যোরি অপটিমাইজারগুলি এসএসডি-সচেতন হওয়া দরকার? এবং সলিড স্টেট ড্রাইভ ক্যোয়ারী প্রসেসিং প্রযুক্তি
মার্টিন স্মিথ

উত্তর:


34

নিজেকে আরেকটি প্রশ্ন জিজ্ঞাসা করুন: যদি পুরো ডাটাবেসটি স্মৃতিতে থাকে এবং আমাকে কখনই ডিস্কটি স্পর্শ করতে না হয়, আমি কি আমার ডেটা অর্ডার করা বি-ট্রিতে সঞ্চয় করতে চাই অথবা আমি আমার ডেটাটি আনর্ডার্ডড হিপগুলিতে সঞ্চয় করতে চাই?

এই প্রশ্নের উত্তর আপনার অ্যাক্সেস প্যাটার্নের উপর নির্ভর করবে। বেশিরভাগ ক্ষেত্রে আপনার অ্যাক্সেসের জন্য একক সারি চেহারা (যেমন। সিক্স) এবং ব্যাপ্তি স্ক্যানের প্রয়োজন। এই অ্যাক্সেস নিদর্শনগুলির জন্য একটি বি-ট্রি প্রয়োজন, অন্যথায় তারা অদক্ষ। ডিডাব্লু এবং ওএলএপ-এ প্রচলিত কিছু অন্যান্য অ্যাক্সেস নিদর্শন সর্বদা সর্বদা পুরো টেবিলের শেষ থেকে শেষ পর্যন্ত সমষ্টি করে এবং তারা পরিসীমা স্ক্যান থেকে কোনও লাভ করে না। আপনি যেমন ড্রিল করার সাথে সাথে অন্যান্য প্রয়োজনীয়তাগুলি প্রকাশ্যে আসে, তেমনি aোকানো গতি এবং গাদা বনাম বি-গাছের গতির মতো বিশাল ইটিএল স্থানান্তর কাজের জন্য ভূমিকা নিতে পারে। তবে বেশিরভাগ সময় উত্তরটি একটি প্রশ্নের কাছে সত্যিই ফুটে ওঠে: আপনি কি রেঞ্জ-স্ক্যানের সন্ধান করছেন? উত্তরের বারবার সংখ্যার উত্তর হ্যাঁ। এবং সেইজন্য ডিজাইনের একটি ক্লাস্টারড ইনডেক্সের প্রয়োজনের সংখ্যক বার।

অন্য কথায়: কেবল এলোমেলোভাবে ডিস্ক থেকে এটি পড়ার পক্ষে সস্তা এটি বোঝায় না যে আপনি আপনার টিএলবি এবং এল 2 লাইনগুলিকে একটি 64 জিবি র‌্যাম স্ক্যান বোনানজাতে ট্র্যাশ করতে পারবেন ...


মেমরিতে এমনকি বেস হিপগুলিতে সারিটি দেখার ব্যয়টি সর্বদা সন্ধানে সারিটি পুনরুদ্ধারের ব্যয়ের চেয়ে সর্বদা বেশি হবে। কেবল মেমরি অ্যাক্সেসের স্থানীয় এলাকা থেকে নয় , জড়িত নির্দেশের নিখুঁত সংখ্যক দিক থেকেও (চেহারাটি মূলত একটি যোগদান, সমস্ত জোড় অপারেটর যন্ত্রপাতি সহ)।
রিমাস রুসানু

23

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

তবে আপনি ঠিক বলেছেন যে একটি ক্লাস্টারড ইনডেক্সের অন্য সুবিধা - অনেকগুলি ডিস্ক সিকের পরিবর্তে ধারাবাহিকভাবে সম্পর্কিত তথ্যগুলি পড়তে / লিখতে - এসএসডি-র পক্ষে কোনও লাভজনক সুবিধা নয়, যেখানে সিক্সগুলি এত বড় পারফরম্যান্সের ওভারহেড নয় স্পিনিং ডিস্ক সহ


পুনঃ @ ম্যাথেজ পিকে এর মন্তব্য

অবশ্যই র‍্যামের অবস্থান এ র‌্যামের বি অবস্থানের ঠিক তত দ্রুত। ঐটা আসল কথা না. আমি সেই মামলার কথা বলছি যখন তথ্যটি অনেক পৃষ্ঠার মধ্যে ছড়িয়ে ছিটিয়ে থাকে তবে আপনার প্রয়োজনীয় সমস্ত ডেটা র্যামের সাথে খাপ খায় না। যে কোনও পৃষ্ঠাতে আপনার আগ্রহী ডেটা কেবলমাত্র একটি অল্প পরিমাণে থাকতে পারে So সুতরাং আরডিবিএমএসকে আপনি এ, বি এবং অন্যান্য সারিগুলিতে অ্যাক্সেস করার সাথে সাথে পৃষ্ঠাগুলি লোড করা এবং মুছতে হবে। আপনি এখানে পারফরম্যান্স পেনাল্টি পাবেন।

এটি প্রতি পৃষ্ঠার জন্য ভালো হতে ডেটা আপনি আশা যে করতে আগ্রহী হন তবে পূর্ণ হতে হবে সব পরবর্তী সারি অনুরোধের RAM- র মধ্যে পৃষ্ঠাগুলি থেকে পরিবেশিত হয়। আপনার ডেটা কম পৃষ্ঠায় একসাথে শ্রেণিবদ্ধ করা হয়েছে তা নিশ্চিত করার জন্য একটি ক্লাস্টারড সূচক ব্যবহার করা ভাল উপায় way


13

হ্যাঁ, এটি একেবারে এখনও উপলব্ধি করে। আপনি আপনার পদ্ধতির খুব নিম্ন স্তরের চিন্তা করছেন। SQL সার্ভার (ক মধ্যে খুব খুব সরলীকৃত ব্যাখ্যা) স্টোরগুলি বি-গাছ স্থাপত্যে ক্লাস্টার তথ্য। এটি ক্লাস্টারড ইনডেক্স কী মানের উপর ভিত্তি করে দ্রুত ডেটা পুনরুদ্ধারের অনুমতি দেয়।

একটি হিপ (কোনও ক্লাস্টার ইনডেক্স) নেই কোনও উপক্রমের ক্রমযুক্ত ক্রম। এখানে বিবেচনা করার জন্য সবচেয়ে গুরুত্বপূর্ণ বিষয়টি হ'ল তথ্য পৃষ্ঠাগুলি কোনও লিঙ্কযুক্ত তালিকায় লিঙ্কযুক্ত নয়

সুতরাং উত্তর হ্যাঁ, টেবিলগুলিতে এমনকি একটি এসএসডি তেও ক্লাস্টারড সূচি তৈরি করা বোধগম্য। এগুলি সমস্ত এসকিউএল সার্ভারের ফলে প্রাপ্ত ডেটাতে পৌঁছানোর জন্য কতটা ডেটা চালিত করতে হবে তার উপর ভিত্তি করে। একটি ক্লাস্টারযুক্ত সূচক সন্ধানের সাথে এটি হ্রাস করা হয়।

তথ্যসূত্র: http://msdn.microsoft.com/en-us/library/ms189051.aspx


সেখানে হবে ক্লাস্টার সূচক হও। মুল বক্তব্যটি এসএসডি প্ল্যাটফর্মের সাথে বিবেচনা করা উচিত কিনা
ম্যাথিউ

5
হ্যাঁ, সাক্সেস ব্যাপার। 3 টি রিডের বিপরীতে 3 টি পড়া আপনি যে মাধ্যমটি ব্যবহার করছেন তা তাড়াতাড়ি দ্রুত।
থমাস স্ট্রিংজার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.