এসকিউএল সার্ভার সারি ওরিয়েন্টেড স্টোরেজে ক্লাস্টারড এবং নন ক্ল্লাস্টারড উভয় সূচকে বি ট্রি হিসাবে সংগঠিত করা হয়।
( চিত্র উত্স )
ক্লাস্টার ইনডেক্স এবং অ ক্লাস্টার ইনডেক্স মধ্যে কী পার্থক্য হল যে ক্লাস্টার সূচক পাতার স্তর হল টেবিল। এটি দুটি জড়িত আছে।
- ক্লাস্টারড ইনডেক্স পাতার পৃষ্ঠাগুলিতে সারিগুলিতে সর্বদা সারণীতে প্রতিটি (অপ্রকাশহীন) কলামের জন্য কিছু থাকে (মান বা প্রকৃত মানের দিকে নির্দেশক)।
- ক্লাস্টার্ড সূচকটি কোনও সারণীর প্রাথমিক অনুলিপি।
নন ক্লাস্টারযুক্ত সূচীগুলি INCLUDE
স্পষ্টভাবে সমস্ত অ-কী কলামগুলি অন্তর্ভুক্ত করার জন্য ক্লজটি (এসকিউএল সার্ভার ২০০৫) ব্যবহার করে পয়েন্ট 1ও করতে পারে তবে সেগুলি গৌণ উপস্থাপনা এবং চারপাশের তথ্যের অনুলিপি (টেবিল নিজেই) থাকে।
CREATE TABLE T
(
A INT,
B INT,
C INT,
D INT
)
CREATE UNIQUE CLUSTERED INDEX ci ON T(A,B)
CREATE UNIQUE NONCLUSTERED INDEX nci ON T(A,B) INCLUDE (C,D)
উপরের দুটি সূচক প্রায় অভিন্ন হবে। উপরের স্তরের সূচী পৃষ্ঠাগুলি সহ কী কলাম A,B
এবং মান পাতার স্তরযুক্ত পৃষ্ঠাগুলির মান রয়েছেA,B,C,D
টেবিলের জন্য কেবল একটি ক্লাস্টার ইনডেক্স থাকতে পারে, কারণ তথ্য সারিগুলি কেবলমাত্র একটি ক্রমে বাছাই করা যায়।
অনলাইন এসকিউএল সার্ভার বইয়ের উপরের উক্তিটি অনেক বিভ্রান্তির কারণ ঘটায়
আমার মতে এটি আরও ভাল হিসাবে চিহ্নিত করা হবে।
শুধুমাত্র এক টেবিল প্রতি ক্লাস্টার সূচক হতে পারে, কারণ ক্লাস্টার সূচক পাতার স্তর সারি হয় সারণী সারিগুলি।
অনলাইন উদ্ধৃতি বইটি ভুল নয় তবে আপনার পরিষ্কার হওয়া উচিত যে ক্লাস্টারযুক্ত ও ক্লাস্টারযুক্ত উভয় সূচকের "বাছাই" শারীরিক নয় log আপনি যদি লিঙ্কের লিখিত তালিকা অনুসরণ করে পাতা স্তরের পৃষ্ঠাগুলি পড়েন এবং স্লট অ্যারে ক্রমে পৃষ্ঠায় সারিগুলি পড়েন তবে আপনি সূচী সারিগুলি সাজানো ক্রমে পড়বেন তবে শারীরিকভাবে পৃষ্ঠাগুলি বাছাই করা যাবে না। সাধারণভাবে অনুষ্ঠিত বিশ্বাস যে একটি ক্লাস্টারড ইনডেক্সের সাথে সারিগুলি সর্বদা ডিস্কের উপরে সূচক কী হিসাবে মিথ্যা হিসাবে একই ক্রমে শারীরিকভাবে সঞ্চিত থাকে ।
এটি একটি অযৌক্তিক বাস্তবায়ন হবে। উদাহরণস্বরূপ, যদি একটি সারিতে 4 গিগাবাইট টেবিলের মাঝখানে ঢোকানো হয় SQL সার্ভার নেই না 2GB ডাটা সদ্য ঢোকানো সারি করে তুলুন রুমে ফাইলে আপ কপি করতে হবে।
পরিবর্তে একটি পৃষ্ঠা বিভক্ত হয়। ক্লাস্টারযুক্ত এবং নন-ক্লাস্টারযুক্ত উভয় সূচকের পাতার স্তরের প্রতিটি পৃষ্ঠার File:Page
লজিকাল কী ক্রমে পরবর্তী এবং পূর্ববর্তী পৃষ্ঠার ঠিকানা ( ) রয়েছে। এই পৃষ্ঠাগুলি হয় হয় না সুসংগত বা মূল ক্রমে।
যেমন লিঙ্কযুক্ত পৃষ্ঠা শৃঙ্খলা হতে পারে 1:2000 <-> 1:157 <-> 1:7053
যখন কোনও পৃষ্ঠার বিভাজন ঘটে তখন ফাইলগ্রুপের যে কোনও জায়গা থেকে একটি নতুন পৃষ্ঠা বরাদ্দ করা হয় (হয় মিশ্র পরিমাণে, ছোট টেবিলের জন্য, বা সেই অবজেক্টের সাথে একটি খালি অভিন্ন ইউনিট বা নতুন বরাদ্দ করা অভিন্ন পরিমাণ)। যদি ফাইল গ্রুপে একের বেশি থাকে তবে এটি একই ফাইলে নাও থাকতে পারে।
যৌক্তিক শৃঙ্খলা এবং স্বরূপ আদর্শ ডিগ্রিযুক্ত শারীরিক সংস্করণ থেকে যে ডিগ্রি থেকে পৃথক হয় তা হ'ল লজিকাল খণ্ডন of
একটি একক ফাইল সহ একটি নতুন তৈরি ডাটাবেসে আমি নিম্নলিখিতগুলি চালিত করেছি।
CREATE TABLE T
(
X TINYINT NOT NULL,
Y CHAR(3000) NULL
);
CREATE CLUSTERED INDEX ix
ON T(X);
GO
--Insert 100 rows with values 1 - 100 in random order
DECLARE @C1 AS CURSOR,
@X AS INT
SET @C1 = CURSOR FAST_FORWARD
FOR SELECT number
FROM master..spt_values
WHERE type = 'P'
AND number BETWEEN 1 AND 100
ORDER BY CRYPT_GEN_RANDOM(4)
OPEN @C1;
FETCH NEXT FROM @C1 INTO @X;
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO T (X)
VALUES (@X);
FETCH NEXT FROM @C1 INTO @X;
END
তারপরে পৃষ্ঠা বিন্যাসটি পরীক্ষা করে দেখুন
SELECT page_id,
X,
geometry::Point(page_id, X, 0).STBuffer(1)
FROM T
CROSS APPLY sys.fn_PhysLocCracker( %% physloc %% )
ORDER BY page_id
ফলাফলগুলি জায়গা জুড়ে ছিল। মূল ক্রমের প্রথম সারি (মান 1 সহ - নীচে তীর দিয়ে হাইলাইট করা) প্রায় শেষ শারীরিক পৃষ্ঠায় ছিল।
যৌক্তিক শৃঙ্খলা এবং শারীরিক শৃঙ্খলার মধ্যে পারস্পরিক সম্পর্ককে বাড়িয়ে তুলতে কোনও সূচি পুনর্গঠন বা পুনর্গঠনের মাধ্যমে খণ্ডন হ্রাস বা সরিয়ে নেওয়া যেতে পারে।
দৌড়ানোর পরে
ALTER INDEX ix ON T REBUILD;
আমি নিম্নলিখিত পেয়েছি
যদি টেবিলটির কোনও ক্লাস্টারড সূচক না থাকে তবে এটিকে হিপ বলা হয়।
নন ক্লাস্টারড ইনডেক্সগুলি হিপ বা একটি ক্লাস্টার ইনডেক্সে তৈরি করা যেতে পারে। এগুলি সর্বদা বেস সারণীতে ফিরে একটি সারি লোকেটার ধারণ করে। স্তূপের ক্ষেত্রে এটি একটি শারীরিক সারি শনাক্তকারী (মুক্তি) এবং তিনটি উপাদান নিয়ে গঠিত (ফাইল: পৃষ্ঠা: স্লট)। ক্লাস্টারড ইনডেক্সের ক্ষেত্রে সারি লোকেটারটি যৌক্তিক (ক্লাস্টারড ইনডেক্স কী)।
পরবর্তী ক্ষেত্রে যদি নন-ক্লাস্টারড সূচকটি ইতিমধ্যে প্রাকৃতিকভাবে সিআই কী কলাম (গুলি) এনসিআই কী কলাম বা INCLUDE
-d কলাম হিসাবে অন্তর্ভুক্ত করে থাকে তবে কিছুই যুক্ত হয় না। অন্যথায় অনুপস্থিত সিআই কী কলাম (গুলি) চুপচাপ এনসিআইতে যুক্ত হবে।
এসকিউএল সার্ভার সর্বদা নিশ্চিত করে যে কী কলামগুলি উভয় প্রকারের সূচকের জন্য অনন্য। সূচিগুলির জন্য এটি যে পদ্ধতিতে প্রয়োগ করা হয় তা দুটি সূচক প্রকারের মধ্যে অনন্য হিসাবে ঘোষণা করা হয় না।
ক্লাস্টারড সূচকগুলি uniquifier
কোনও বিদ্যমান সারিটির সদৃশ করে মূল মানগুলির সাথে যে কোনও সারিগুলির জন্য একটি সংযুক্ত করে। এটি কেবল একটি আরোহী পূর্ণসংখ্যা।
অ ক্লাস্টারযুক্ত সূচীগুলির জন্য অনন্য এসকিউএল সার্ভার হিসাবে ঘোষিত নয় এমনভাবে নন ক্লাস্টারড ইনডেক্স কীতে সারি লোকেটারটি নীরবে যুক্ত করে। এটি সমস্ত সারিগুলিতে প্রযোজ্য, কেবলমাত্র প্রকৃত নকল নয়।
ক্লাস্টার্ড বনাম নন ক্লাস্টারযুক্ত নামকরণ কলাম স্টোর সূচীগুলির জন্যও ব্যবহৃত হয়। কাগজ SQL সার্ভার কলাম দোকানে উন্নতি রাজ্যের
যদিও কলাম স্টোরের ডেটা কোনও কীতে সত্যই "ক্লাস্টারড" নয়, আমরা প্রাথমিক সূচকে একটি ক্লাস্টার্ড সূচক হিসাবে উল্লেখ করার জন্য traditionalতিহ্যবাহী এসকিউএল সার্ভার কনভেনশন ধরে রাখার সিদ্ধান্ত নিয়েছি।