بررسی مفهوم ایندکس در SQL Server

۳.۹
(۱۵)

ایندکس در SQL درواقع یک ساختار داده‌ای بوده و بیشتر برای بهبود عملکرد جستجوها و مرتب‌سازی در پایگاه داده استفاده می‌شود. در این ویدئو درباره index در sql صحبت می‌کنیم و در ادامه نیز به معرفی Clustered Index می‌پردازیم.

دوره آموزشی Performance Tuning در SQL Server

ایندکس در SQL چیست؟

پیش از بررسی Clustered Index در SQL Server به بررسی ایندکس می‌پردازیم. ایندکس در SQL یک لیست مرتب‌شده از داده‌ها و دیتاها است که داده‌ها براساس یکسری قوانین عددی، رشته‌ای و تاریخ به‌صورت صعودی یا نزولی در آن مرتب شده‌اند.

انواع ایندکس در SQL

انواع مختلفی از ایندکس در SQL وجود دارد اما به‌طور کلی، به ۲ طبقه تقسیم می‌شوند:

  1.  ایندکس‌هایی که معماری آن‌ها بر پایه معماری دیسکی (Disk base) است.
  2.  ایندکس‌هایی که ساختار آن‌ها مبتنی‌بر تکنولوژی in-memory بوده که از SQL Server ۲۰۱۴ به بعد ارائه درحال ارائه هستند.

index در sql به‌صورت دیسکی، به ۲ حالت دسته‌بندی می‌شوند که یکی از آن‌ها row based است. در این حالت، سبک ذخیره‌سازی آن‌ها ردیفی بوده و داده‌ها می‌توانند شامل موارد زیر باشند که در مقاله بررسی جداول Heap و Clustered در SQL Server به‌طور کامل این دو مورد را بررسی می‌کنیم:

  • بدون نظم و ترتیب یا اصطلاحاً heep باشند.
  • درحالت Clustered Index قرار گیرند و دارای نظم باشند.

row based

Clustered Index چیست؟

زمانی که صحبت از Clustered Index می‌شود، به آن معناست که جدولی که داده‌ها در آن قرار دارد، Clustered table است. در این حالت، رکوردهای موجود در جدول دارای نظم و ترتیب هستند. یکی از ساختارهای ذخیره‌سازی داده در جداول کلاستر ایندکس است که براساس آن، داده‌ها در ازای یک فیلد خاص، که توسط ما مشخص می‌شود، دارای نظم و ترتیب است. در روش Clustered Index، همه‌‌ داده‌‌‌های یک جدول با یک ترتیب مشخص به‌صورت فیزیکی در هارد دیسک ذخیره خواهند شد؛ از این رو، یک جدول فقط یک کلاستر ایندکس دارد که برای تمام داده‌‌‌ها اعمال می‌‌‌شود.

عملاً زمانی که صحبت از ایندکس در SQL می‌شود، شما باید مرتب‌سازی صفحات کتاب رو درنظر بگیرید که وقتی کتابی را ورق می‌زنید، صفحات کتاب براساس شماره صفحه مرتب شده‌اند و به‌نوعی، هدف از ایندکس این است که اصل رکوردهای درون جدول را مرتب کند. به‌طور کلی، ویژگی‌های Clustered Index شامل:

  • رکوردها دارای نظم و ترتیب است.
  • مرتب‌سازی رکوردها براساس کلید ایندکس 
  • شبیه به مرتب‌سازی صفحات کتاب
  • مرتب‌سازی اصل رکوردهای جدول

Clustered Index چیست؟

Clustered Index و Primary Key

  • کنترل PK بااستفاده از Unique Clustered Index
  • کنترل Constraint بااستفاده از ایندکس
  • کارایی جدول = انتخاب PK مناسب

توجه به نوع ایندکس = افزایش کارایی PK

توجه داشته باشید ایندکسی که برای بحث PK انتخاب می‌کنیم، باید به‌شکل اصولی انتخاب شود و این ایندکس در SQL باعث می‌شود پرفورمنس جدول بالا رود و افزایش پیدا کند. همچنین می‌توانید با مراجعه به مقاله تفاوت Primary Key و Clustered Index اطلاعات بیشتری در این زمینه به‌دست آورید.

Clustered Index و Primary Key

نکات مهم در Clustered Index

درخصوص Clustered Index باید به چند نکته زیر توجه داشته باشید:

  • اگر یونیک بودن مقادیر امکان‌پذیر است، هنگام ایجاد ایندکس باید درنظر گرفته شود.
  • حجم ایندکس باید کم باشد.
  • تاجایی که امکان دارد، noindex عددی باشد و به شکل افزایشی درنظر گرفته شود.
  • به‌روزرسانی کمتری داشته باشد.

در ادامه و به‌عنوان نکته تکمیلی ایندکس در SQL حتماً به این نکته دقت کنید که پشت ساختارهای ذخیره‌سازی ایندکس‌ها، اصول ریاضی و درختی وجود دارد که مشابه تصویر زیر است.

ساختار درختی ایندکس در SQL

چه رتبه ای می‌دهید؟

میانگین ۳.۹ / ۵. از مجموع ۱۵

اولین نفر باش

title sign
برچسب ها
title sign
دانلود ویدئو
بررسی مفهوم ایندکس در SQL Server
فرمت MP4
زمان ویدئو 11 دقیقه
حجم مگابایت
دانلود ویدئو
title sign
معرفی نویسنده
مقالات
21 مقاله توسط این نویسنده
محصولات
65 دوره توسط این نویسنده

مسعود طاهری مدرس و مشاور ارشد SQL Server & BI ،  مدیر فنی پروژه‌های هوش تجاری (بیمه سامان، اوقاف، جین وست، هلدینگ ماهان و...) ، مدرس دوره‌هــای SQL Server و هوش‌تجاری در شرکت نیک‌آموز و نویسنده کتاب PolyBase در SQL Server

title sign
معرفی محصول
title sign
ویدیوهای مرتبط
title sign
دیدگاه کاربران

    • سلام. خیلی ممنون بابت توضیح ساده و روان مفهوم ایندکس.

      اگر امکانش باشد جناب طاهری، بحث نرمالیزیشن را هم به صورت ویدیو توضیح دهند عالی و دیدنی خواهد بود