ایندکس (Index) در SQL ساختاری است که برای افزایش سرعت جستجو و بازیابی داده‌ها از جداول پایگاه داده استفاده می‌شود. آنها با ذخیره‌سازی مرتب و سازمان‌یافته مقادیر ستون‌های خاص، امکان دسترسی سریع‌تر به ردیف‌ها را فراهم می‌کند، مشابه فهرست یک کتاب.

مزایا:

کاهش زمان اجرای کوئری‌ها، بهبود عملکرد در عملیات SELECT، JOIN و WHERE.

معایب:

افزایش فضای ذخیره‌سازی و کند شدن عملیات درج، به‌روزرسانی و حذف (INSERT, UPDATE, DELETE) به دلیل نیاز به به‌روزرسانی ایندکس.

انواع:

Clustered: ترتیب فیزیکی داده‌ها در جدول را تعیین می‌کند (هر جدول حداکثر یک نوع کلاسترد می‌تواند داشته باشد).
Non-Clustered: ساختاری جداگانه برای اشاره به داده‌ها ایجاد می‌کند (می‌تواند چندین ایندکس غیرکلاسترد داشته باشد).

نحوه ایجاد:

با دستور CREATE INDEX، یک Index در Sql Server ایجاد می شود.

CREATE INDEX idx_column ON table_name(column_name);

مثال:
اگر جدولی با ستون Name داشته باشیم و کوئری‌های زیادی روی آن جستجو کنند، ایجاد ایندکس روی Name باعث سریع‌تر شدن جستجو می‌شود.

نکته:
ایندکس‌ها باید با دقت انتخاب شوند، زیرا تعداد بیش از حد آنها می‌توانند عملکرد را کاهش دهند.

SQL Server Performance, SET STATISTICS IO, SET STATISTICS TIME, Query Tuning, SQL Optimization, CPU Time, Elapsed Time

تحلیل Performance کوئری‌ها در SQL Server با SET STATISTICS IO و SET STATISTICS TIME | راهنمای کامل خواندن Logical Reads و CPU Time

در بهینه‌سازی SQL Server، بزرگ‌ترین اشتباه این است که فقط به زمان اجرای کوئری نگاه کنیم. زمان اجرا به‌تنهایی هیچ چیز را ثابت نمی‌کند و معیارهایی مثل Logical ... ادامه مطلب