ورود

View Full Version : ایندکس روی ویو



d_rabiee
یک شنبه 26 اسفند 1386, 14:21 عصر
جدولی به نام t1 با ستونهای a,b , c و جدولی دیگری به نام t2 با ستونهای e,f , g دارم. در t1 ایندکسی روی a و b میسازم: (create index xx on t1(a,b . آیا پرس و جوی زیر که فقط از یکی از این ستونها استفاده می کند کارایی لازم را خواهد داشت یا باید یک ایندکس انفرادی برای a هم درست کنم؟
***=select * from t1 where a

سوال بعدی این است که اگر درجدول t1 ایندکسی روی c و در جدول t2 ایندکسی روی e بسازم و با این دو جدولی ازطریق inner join یک ویو با نام v ایجاد کنم ، ایا پرس و جوی زیر کارایی لازم را خواهد داشت یا باید روی این ویو هم ایندکس بسازم :
'***'=select * from v where a='***' and e
سوال آخر اینکه آیا ایجاد ایندکس رو فیلدهای عددی و بولین هم لازم است .
ببخشید که سوالات زیاد و خسته کننده شد.

AminSobati
یک شنبه 11 فروردین 1387, 18:23 عصر
دوست عزیزم،
1) با توجه به اینکه ایندکس شما با فیلد a شروع شده، این ایندکس میتونه در Query که مثال زدین مورد استفاده قرار بگیره و نیاز به ایندکس جدا روی a نیست.

2) ایندکسهایی که ساخته میشن برای Queryهای داخل View هم میتونن مفید باشند. ساخت ایندکس روی View دلایل دیگه ای داره. یعنی الزاما هر View نباید روش ایندکس ساخته بشه

3) لازم بودن ایندکس روی اعداد یا bit در جای خودش (سناریوی خاص) بررسی میشه. ولی به طور کلی بله، میتونه کمک کنه به سرعت Query