PDA

View Full Version : با ایجاد یک ایندکس چه اتفاقی پشت صحنه روی Page



odiseh
سه شنبه 06 آذر 1386, 14:06 عصر
سلام

من می خوام بدونم که با ایجاد یک Index روی یک فیلد از یه جدول چه اتفاقی پشت صحنه روی Page های SQL Server که اون جدول رو می سازند می افته؟

یوسف علمی
پنج شنبه 08 آذر 1386, 00:00 صبح
سئوالت مفهوم نیست

AminSobati
پنج شنبه 08 آذر 1386, 00:41 صبح
دوست عزیزم،
زمانی که NonClustered Index میسازین روی یک فیلدی از جدول، در حقیقت اطلاعات اون فیلد در Pageهای جدیدی مرتب میشن و یک علامت در کنار هر Value ثبت میشه و مشخص میکنه این Value مربوط به کدام رکورد از جدول اصلی هست. این علامت اصطلاحا Book Mark نامیده میشه. حالا زمانیکه Query شما روی چنین فیلدی جستجو میکنه، به خاطر مرتب بودن Value ها در ایندکس، SQL Server میدونه که عبارت مورد جستجو در کجای ایندکس قرار گرفته. لذا به اون قسمت رجوع میکنه و با کمک Book Markی که میبینه، به اصل رکورد در جدول دست پیدا میکنه.
اما در ایندکس Clustered، خود جدول بر مبنای فیلد ایندکس، مرتب میشه و روی ترتیب فیزیکیه رکوردها تاثیر میگذاره. البته مطلبی که توضیح دادم بسیار کلی بود و جزئیاتش زیاده. من پیشنهاد میکنم در Books Online ساختار ایندکس رو مطالعه کنید، جایی که ابهام داشت رو به صورت سوال پست کنین اینجا