কেন সূচিযুক্ত দর্শনগুলি অ-অনন্য ক্লাস্টারযুক্ত সূচিগুলিকে অনুমতি দেয় না?


12

আমি আমাদের বেশ কয়েকটি ব্যবহৃত বেশিরভাগ ভিউতে পারফরম্যান্স বাড়ানোর জন্য ইনডেক্সেড ভিউগুলি ব্যবহার করে যাচ্ছি।

তবে ইনডেক্সেড ভিউগুলি অনন্য-অনন্য ক্লাস্টারড ইনডেক্সগুলিকে সমর্থন করে না যা বাকী ডাটাবেস কাঠামোর দ্বারা নির্ধারিত নজিরের তুলনায় কিছুটা যায়।

উদাহরণস্বরূপ, এখানে আমাদের কয়েকটি টেবিলের সরলিকৃত সংস্করণ।

-Groups-
Group ID    GroupName

-Users-
UserKey    UserName    FullName     GroupID

সূচীগুলি গ্রুপগুলিতে রয়েছে IDগ্রুপআইডি (নন-ক্লাস্টারড) এবং ব্যবহারকারীগণ Gগোষ্ঠী (ক্লাস্টারড)। ব্যবহারকারীদের টেবিলে গ্রুপআইডি-তে থাকা ক্লাস্টারযুক্ত কীটি সাধারণত একটি নির্দিষ্ট গোষ্ঠীর ব্যবহারকারীদের একটি ব্যাপ্তি পুনরুদ্ধার করতে পারে। স্পষ্টতই আপনার প্রতি গ্রুপে একাধিক ব্যবহারকারী থাকবে, সুতরাং এই ক্লাস্টারড সূচকটি অনন্য।

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

ConsumableID    ConsumableVariantID AllowThresholdOverwrite FullPath    GroupID ManufacturerID  Type    ModelID
101              29                 1                       0.1.2.4.    4       3               3       2

বাস্তবে এই ভিউয়ের একমাত্র মান যা সর্বদা অনন্য হয়ে থাকবে তা হ'ল কনজিউসিব্লাইড কলাম, সুতরাং আমার সূচিটি কোথায় রাখবেন সে সম্পর্কে আমার খুব কম পছন্দ নেই।

নিয়মিত সারণীগুলি করার সময় কেন দৃশ্যগুলি অ-অনন্য ক্লাস্টারযুক্ত সূচকের অনুমতি দেয় না?


3
এই পৃষ্ঠার নীচের নিকটে খুব সংক্ষিপ্ত ব্যাখ্যা রয়েছে 'শিরোনামে প্রথম দৃষ্টিকোণটি কেন বিশুদ্ধ এবং অনন্য হতে হবে?' তবে এটি খুব বিস্তারিত করে না। আমি অবশ্যই আরও বিস্তারিত ব্যাখ্যা শুনতে আগ্রহী করব।
স্টিভ পেটিফায়ার

5
বেশ কয়েকটি মন্তব্য: 1 - আপনি ক্লাস্টার করতে পারবেন না এমন কোনও কারণ নেই (GroupID, UserID)। কীটির জন্য নিজেকে একক কলামে সীমাবদ্ধ করবেন না। 2 - আমি দেখার জন্য সীমাবদ্ধতাটি কল্পনা করি কারণ এটি একটি পরিপূরক ডেটা অবজেক্ট যা সহজেই এনসি সূচকগুলিতে সারি বাঁধা থাকা দরকার। একটি টেবিলের জন্য, অ-স্বতন্ত্র সিআই কী এতে অন্তর্ভুক্ত হয়ে যায়, তবে আমি মনে করি যে এটি সূচী দৃষ্টিভঙ্গির সাথে আরও চ্যালেঞ্জ হবে কারণ এটি কোনও আসল টেবিল নয় তবে একটি প্রকৃত টেবিলটি প্রতিবিম্বিত করা দরকার।
জেএনকে

উত্তর:


22

নিম্নলিখিত ব্যাখ্যাটি এই মাইক্রোসফ্ট প্রযুক্তিগত নিবন্ধে দেওয়া হয়েছে :

কেন একটি দৃশ্যে প্রথম সূচকটি ক্লাস্টার্ড এবং অনন্য হতে হবে?

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

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

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

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


2
যদি আপনি কোনও সূচকযুক্ত ভিউ আপডেট করার চেষ্টা করেন যার একটি GROUP BYধারা রয়েছে তবে সমস্ত গোষ্ঠীভুক্তিই ক্লাস্টারড ইনডেক্সের কী নয় A এটা তোলে SQL সার্ভার হিসাবে বৈধ নয় 2014.
Quassnoi

4

এসকিউএল সার্ভারে সমস্ত সূচি কী অভ্যন্তরীণভাবে স্বতন্ত্র হওয়া উচিত। লক কীগুলি যে ঠিক এক সারিতে সম্বোধন করা প্রয়োজন এটির জন্য এটি প্রয়োজন। এটি সূচক রক্ষণাবেক্ষণের জন্যও প্রয়োজনীয়। একটি কলামে এমন একটি এনসিআই কল্পনা করুন যার কেবলমাত্র এটির একটি মান রয়েছে (100% নকল)। যদি কোনও সারিটি টেবিল থেকে মুছে ফেলা হয় তবে স্টোরেজ ইঞ্জিন অবশ্যই সংশ্লিষ্ট এনসিআই সারির সন্ধান করতে হবে এবং এটি মুছে ফেলতে হবে। যদি সমস্ত এনসিআই সারি পৃথক পৃথক হয় তবে এটি অসম্ভব।

সুতরাং আপনি দেখতে পাচ্ছেন যে ইঞ্জিনটি কাজ করার জন্য একটি ভিউয়ের সিআই অবশ্যই (অভ্যন্তরীণভাবে) অনন্য হতে হবে।

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

কোনও সুস্পষ্ট কলাম নেই যা সূচিযুক্ত দৃশ্যের ক্ষেত্রে যুক্ত করা যেতে পারে। সুতরাং এসকিউএল সার্ভার স্বয়ংক্রিয়ভাবে এটি করতে পারে না।

সাধারণভাবে, এটি কোনও মানুষের পক্ষে একেবারে সুস্পষ্ট যে ভিউটি সিআইতে ব্যবহারের জন্য কলামগুলির একটি অনন্য সেট রাখতে ভিউগুলি যুক্ত করতে আপনি কী যুক্ত করতে পারেন। এগুলি সাধারণত অন্তর্নিহিত টেবিলগুলির মধ্যে একটিতে পিকে বা সিআই কলাম। দৃশ্য একটি থাকে GROUP BYগোষ্ঠীবদ্ধ কী উপর আপনি সাধারণত সূচি।


2
আমি দৃ strongly়ভাবে এই উত্তরটির বাক্য সংশোধন করার পরামর্শ দিচ্ছি। যদিও এটিতে মূল প্রশ্নটি সম্পর্কিত একটি বৈধ পয়েন্ট রয়েছে তবে এটি দেখতে দেখতে এটির মতো মনে হতে পারে যে সমস্ত অদ্বিতীয় সূচীতে ইউসিফায়ার রয়েছে, যা এটি নয়।
স্প্যাগেটিডবা

@ স্প্যাগেটিডবা ধন্যবাদ, আমি তা খেয়াল করি নি। আশা করি এটি এখন আরও ভাল।
usr ডিরেক্টরির

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

@ স্প্যাগেটিডিবা এনসিআইগুলি অভ্যন্তরীণভাবে সর্বদা অনন্য। তারা সবসময় একটি সিউরি পরিকল্পনার অংশ হিসাবে সমস্ত সিআই কী আউটপুট করতে পারে। পেস্টবিন .com/ vkGHpCsR দেখুন এনসিআই ডেটা পৃষ্ঠাতে উভয় কলাম রয়েছে।
usr

আমি দেখছি আপনি কোথা থেকে এসেছেন। একাধিক পাতাগুলি একই সূচক কী ভাগ করতে পারে তবে ক্লাস্টারিং কী সর্বদা এনসিআইতে অন্তর্ভুক্ত থাকে। এগুলি কি অভ্যন্তরীণভাবে সর্বদা অনন্য বলে বলা যথেষ্ট? আমি তাই মনে করি না.
স্প্যাগেটিডবা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.