اندیس (Cluster Index) درSQL Server

پنجشنبه 16 دی 1395

در این مقاله Index ها در SQL Server را با یک روش ساده بررسی خواهیم کرد . خیلی از تازه کار ها و دانش آموزان با درک و فهمیدن مفهوم Index در SQL Server مشکل دارند . در این مقاله به بررسی آن خواهیم پرداخت و با ارائه مثال و بررسی مرحله به مرحله آن سعی میکنیم که مطلب را برای شما جا بندازیم .

اندیس (Cluster Index) درSQL Server

تعریف :

Index یک Object از SQL می باشد . این یک ساختار داده است که سرعت عملیات واکشی را بهبود میبخشد . index یکی از بهبود دهنده های کوئری است که برای افزایش و بالا بردن کارایی مورد استفاده قرار میگیرد . 

مثال Real-Time :

سیستم تایید بلیط تمرین مثال خوبی برای index ها می باشد چون  این تایید دارای جزئیاتی نظیر شماره مربی ، شماره محل نشستن و جزئیات مربوط به محل ایست کردن وجود دارد . ما میتوانیم محل نشستن خودمان را به راحتی هر چه تمام تر پبدا کنیم . اگر ما این جزئیات را نداشته باشیم ، ما باید هر مربی را بررسی کنیم ، که زمان بیشتری از ما میگیرد . 



انواع Index :

در SQL Server دو نوع Index وجود دارد :
1. Cluster Index -- اندیس هایی که چندگانه هستند .
2. Non-Cluster Index -- اندیس هایی که چندگانه نیستند .

Syntax :

[Create [Type of index] [Index Name] On [Table Name

توضیحات :

1. "Create" و "on" جزو کلمات کلیدی SQL Server هستند . 
2. [ Type of Index ] - نوع Index که ما نیاز به ایجاد آن داریم . 
3. [ Index Name ] - نام Index است که توسط کاربر داده می شود .
4. [ Table Name ] - نام جداول و فیلد هایی که برای ایجاد Index مورد استفاده قرار میگیرد . 

نمودار Syntax :




Cluster Index - اندیس چندگانه :

Cluster Index یک از objectهای SQL Server میباشد . ما می توانیم از متد زیر برای ایجاد یک Index استفاده کنیم . این نوع از Index ها امکان گرفتن چند مقدار را دارند . 

مثال - کوئری :

(CREATE CLUSTERED INDEX IX_Test_Id ON test(Id



بعد از ایجاد Index , مقادیر را وارد کنید . هم زمان با این ، ما میتوانیم برای اندیس id یکسانی را نیز وارد کنیم . 


Cluster Index منحصر به فرد :

Cluster Index منحصر به فرد فقط مقادیر منحصر به فرد را قبول میکند و مقادیر Duplicate را نمی پذیرد . 

مثال - کوئری :

(CREATE UNIQUE CLUSTERED INDEX IX_Unique_Test_Id ON test(Id


بعد از ایجاد Cluster Index منحصر به فرد ، ما در فیلد هایی که Unique ساخته شده اند نمیتوانیم داده تکراری وارد کنیم . ابتدا ، دو رکورد وارد جدول Test میکنیم . سپس ، زمانی که داده ای تکراری بخواهیم وارد جدول بکنیم با پیام خطای زیر مواجه خواهیم شد . 




نکته : ما بعد وارد کردن داده ها میتوانیم Index منحصر بفرد ایجاد کنیم ، که اگر ما در جدول خود داده ای تکراری داشته باشیم با خطایی که در زیر نمایش داده شده است مواجه خواهیم شد . 


جدول بالا دارای داده های تکراری میباشد . بنابراین ، اگر ما برای ایجاد اندیس Unique اقدام کنیم ، با خطای زیر مواجه خواهیم شد :

ترکیب Cluster Index :

زمانی که ما یک Index ایجاد میکنیم که ترکیبی از نام ستونهای یک جدول یا یک فیلد است ، به این ترکیب Cluster Index میگویند .  ما امکان وارد کردن داده های duplicate را در این Index داریم :

مثال - کوئری :

(CREATE CLUSTERED INDEX IX_Test_Id ON test(Id,Name

ما برای ترکیب دو ستون - یکی برای Id  و دیگری برای Name -  یک Index ایجاد میکنیم . 


در جدول ما ، همانطور که در زیر نمایش داده شده است ما دو رکورد وارد جدول میکنیم :




ترکیب Cluster Index مقدار تکراری را میپذیرد ، تصویر زیر را مشاهده فرمایید :




ترکیب Cluster Index منحصر به فرد :

ترکیب Cluster Index منحصر به فرد ، ترکیبی از unique و Composite میباشد . که مقدار تکراری را نمی پذیرد . 

مثال :

(CREATE UNIQUE CLUSTERED INDEX IX_Test_Id ON test(Id,Name


بعد از ایجاد این ، ما نمیتوانیم مقداری تکراری در آن وارد کنیم . برای مثال ، ما دو داده با مقادیر مختلف وارد جدول میکنیم . اما زمانی که سعی می کنیم که یک داده تکراری وارد جدول کنیم با خطای زیر مواجه خواهیم شد . 



نکته : توجه داشته باشید که ما بعد از وارد کردن رکورد ها میتوانیم Index را ایجاد کنیم . اما اگر داده تکراری در جدول وجود داشته باشد نیز ما با خطا مواجه خواهیم شد . به این دلیل که در این نوع Index داده تکراری مجاز نیست . 



در تصویر بالا ، داده های تکراری را در جدول مشاهده میکنید . اگر این Index با خطایی مواجه شود همانند تصویر زیر خواهد شد . 


طریقه بررسی Index ها در جدول :

ما نام Index و شماره Index ساخته شده در جدول SQL Server را میتوانیم پیدا کنیم . به تصویر زیر توجه فرمایید :



نتیجه گیری :

ما در این مقاله با  Cluster Index و انواع آن آشنا شدیم . امدواریم که این مقاله برای شما مفید واقع شده باشد . 

آموزش نصب sql server 2017

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید