ورود

View Full Version : حرفه ای: سوالی در رابطه با Join



Reza_Yarahmadi
پنج شنبه 04 شهریور 1389, 22:59 عصر
سلام به همه دوستان
سؤالم اینه که توی join کردن اگر بلاک Where رو توی شرط Join بیاریم بهتره یا اینکه بصورت همون Where باشه بهتره؟ و یا کلا Join به چه صورت انجام بشه کارایی بالاتری داره؟ (این بهتره بودن از نظر سرعت واکشی است)

Select * From tbl1 inner join tbl2 on tbl1.id = tbl2.id Where tb1.Field1 = @param1 AND tbl2.Field2 = @param2
//OR
Select * From tbl1 inner join tbl2 on tbl1.id = tbl2.id AND tb1.Field1 = @param1 AND tbl2.Field2 = @param2
//OR
....???
دوستان ازتون تقاضا دارم که نظرتون رو با دلیل بیان کنید و اگر منبعی در این رابطه دارید اونو هم بذارید.
ممنون از همه.

AminSobati
جمعه 05 شهریور 1389, 02:00 صبح
سلام دوست عزیزم،
در INNER JOIN چه از لحاظ سرعت و چه از لحاظ نتیجه تفاوتی ایجاد نخواهد شد. میتونین با کلید CTRL+L به Execution Plan نگاهی بندازین. اما در Outer Join میتونه نتیجه Query رو عوض کنه

Reza_Yarahmadi
جمعه 05 شهریور 1389, 10:18 صبح
ممنون از جوابتون
حالا در مورد outer join بهترین روش نوشتن به چه صورت است؟

Hossein Bazyan
جمعه 05 شهریور 1389, 11:51 صبح
ممنون از جوابتون
حالا در مورد outer join بهترین روش نوشتن به چه صورت است؟

http://barnamenevis.org/forum/showthread.php?t=241637

Reza_Yarahmadi
جمعه 05 شهریور 1389, 13:48 عصر
دوست عزیز من با انواع Join ، نحوه استفاده و جایگاه استفاده از اونها آشنا هستم
سؤال من این بود که شرطهای دستور رو با چه ترکیبی به کار ببریم که حداقل زمان واکشی رو داشته باشه
برای مثال اگه شرط Join یک شرط باشه و بقیه شرطها توی بلاک Where بیاد بهتره
یا
اگر تمام شرطهای دستور رو توی شرط Join بیاریم بهتر میشه
یا
....
؟؟؟؟؟