اندیس (Cluster Index) درSQL Server
پنجشنبه 16 دی 1395در این مقاله Index ها در SQL Server را با یک روش ساده بررسی خواهیم کرد . خیلی از تازه کار ها و دانش آموزان با درک و فهمیدن مفهوم 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
- 4k بازدید
- 6 تشکر