
ایندکس (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 باعث سریعتر شدن جستجو میشود.
نکته:
ایندکسها باید با دقت انتخاب شوند، زیرا تعداد بیش از حد آنها میتوانند عملکرد را کاهش دهند.


Cardinality Estimation در SQL Server چیست و چرا باعث کندی کوئری میشود؟

راهنمای تحلیلی و سازمانی عیبیابی افت ناگهانی SQL Server Performance

راهنمای جامع و پیشرفته انتخاب Clustered و Nonclustered Index در SQL Server

Execution Plan چیست و چگونه آن را تحلیل کنیم؟

Throughput چیست و چرا شاخص پنهان سلامت SQL Server است؟

مانیتورینگ Zabbix دقیقاً چه چیزهایی را در زیرساخت دیتابیس باید شامل شود؟

Low Selectivity در ایندکسها چه بلایی سر Performance میآورد؟

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

