کم حوصله
دوشنبه 21 خرداد 1386, 23:23 عصر
می دونیم زمانی که چندین جدول را باهم join میکنیم اگر کوچکترین جدول اولین باشد سرعت بالا می رود. حال اگر مثلا 3 جدول Aو Bو C داشته باشیم که بخواهیم این سه را باهم join بزنیم و تمام شرط ها برروی جدول A باشد کدام بهینه تر می باشد:
1 - 3جدول را باهم join زده و شرط را در انتها در قسمت where بنویسیم.
2 - ابتدا شرط را برروی جدول A به تنهایی زده نتیجه را داخل جدول شارپ (#) ریخته سپس جدول شارپ را با دو جدول دیگر join بزنیم
3 - در همان زمان join زدن یک کوءری داخلی زده و نتیجه را با دو جدول Join بزنیم
مثال:
1 -
Select * From A Inner Join B ON A.F = B.F Inner Join C ON B.F = C.F Where A.F2 = 6
2 -
Select * Into #T From A Where F2 = 6
Select * From #T Inner Join B ON #T.F = B.F Inner Join C ON B.F = C.F
3 -
Select * From ( Select * From A Where F2 = 6 )A Inner Join B ON A.F = B.F Inner Join C ON B.F = C.F
در نظر بگیرید حجم اطلاعات شرکت کنند در join خیلی بالاست
1 - 3جدول را باهم join زده و شرط را در انتها در قسمت where بنویسیم.
2 - ابتدا شرط را برروی جدول A به تنهایی زده نتیجه را داخل جدول شارپ (#) ریخته سپس جدول شارپ را با دو جدول دیگر join بزنیم
3 - در همان زمان join زدن یک کوءری داخلی زده و نتیجه را با دو جدول Join بزنیم
مثال:
1 -
Select * From A Inner Join B ON A.F = B.F Inner Join C ON B.F = C.F Where A.F2 = 6
2 -
Select * Into #T From A Where F2 = 6
Select * From #T Inner Join B ON #T.F = B.F Inner Join C ON B.F = C.F
3 -
Select * From ( Select * From A Where F2 = 6 )A Inner Join B ON A.F = B.F Inner Join C ON B.F = C.F
در نظر بگیرید حجم اطلاعات شرکت کنند در join خیلی بالاست