ورود

View Full Version : شیوه ساخت ایندکس مرکب از دو فیلد



A.Farzin
دوشنبه 21 اسفند 1385, 16:26 عصر
با سلام

در جدولی دو فیلد F1 و F2 را با نوع داده int داریم. می‌خواهم ایندکسی بسازم که در پیدا کردن حاصل کوئری زیر کمک‌ساز باشد و جستجوی با سرعت انجام شود.

SELECT F1, F2 FORM Table1 WHERE (F1+F2) = 120000

چه کردم و جواب نداد:
با استفاده از کادر ایجاد ایندکسها در نمای طراحی جدول در Enterprise Manager، ایندکس مرکبی به نام IX_F1F2 و با ست کردن ستونهای F1 و F2 در دو ردیف زیرین این کادر ساختم.
ولی با این حال سرعت اجرای دستور کم نشد.

چگونه ایندکس بسازم تا کلیدهای آن با شرط F1+F2=120000 مطابقت داشته باشد؟

خیلی ممنون

AminSobati
دوشنبه 21 اسفند 1385, 23:17 عصر
دوست عزیزم شما باید از قابلیت ایندکس زدن روی Computed Column استفاده کنین:


create table t1(
c1 int,
c2 int,
c3 as c1+c2)

create index _a_ix1 on t1(c3)

insert t1 select 1,2
insert t1 select 10,20
insert t1 select 11,21
insert t1 select 1,2
insert t1 select 10,20
insert t1 select 11,21

select * from t1 where c3=3

اگر از SQL Server 2005 استفاده میکنین، میتونین از عبارت Persisted هم بهره ببرید