استفاده از clustered index
با سلام و خسته نباشید خدمت شما
من یک جدول دارم با فیلدهای id و firstname و lastname و فیلد id را به clustered index اضافه کردم حالا موقعی که از طریق id در select جستجو می کنم مثلا یک عدد را خیلی سریع جستجو می کند با cost خیلی کم وقتی که از طریق firstname یا lastname جستجو می کنم هزینه یا cost خیلی افزایش پیدا می کند این را می دانم که من فیلد id را برای کلاسترد ایندکس تعریف کردم و بر اساس این ترتیب جدول ساخته شده است حالا اگر بخواهم از طریق firstname جستجو بکنم و یکجوری هم id را در شرط خودم قرار بدهم چکار باید بکنم مثلا بخواهم نام حسین را در firstname جستجو بکنم با این که هزینه یا cost خیلی عالی بشود.
البته نمی خواهم که firstname یا lastname جزو کلاسترد ایندکس من باشند فقط می خواهم که id جزو کلاسترد ایندکس باشد به خاطر اینکه page های کمتری ایجاد می کند.
با تشکر از شما
2 پاسخ
با سلام و خسته نباشید خدمت استاد عزیزم
ممنونم از توجه شما
سلام و عرض ادب، ایجاد ایندکس های مناسب بستگی به نوع ستون ها و کوئری که استفاده می کنید داره، شما Clustered Index رو بر روی Id ایجاد کردید که Primary Key هست، پیشنهاد می کنم Non Clustered Index بر روی FirstName و LastName ایجاد کنید و تست کنید ببینید چه مقدار کوئری ای که استفاده می کنید بهینه میشه:
CREATE NONCLUSTERED INDEX IX_FirstName_LastName
ON dbo.Table (FirstName, LastName);