22.01.2009, 18:49 | #1 |
Участник
|
2 while select или join?
Я всегда считал, что join таблиц отрабатывает быстрее чем 2 while select`а. Но вот увидел в коде двойной while select и решил "исправить". После переписывания запроса на join код стал выполняться дольше. Написал простой job
X++: static void JobJoin(Args _args) { SalesTable SalesTable; SalesLine SalesLine; int startTime, endTime, i; ; startTime = timenow(); while select SalesTable { while select SalesLine where SalesLine.SalesId == SalesTable.SalesId { i++; } } endTime = timenow(); info(strFmt("2 while select: %1, i = %2", endTime - startTime, i)); i = 0; startTime = timenow(); while select SalesTable join SalesLine where SalesLine.SalesId == SalesTable.SalesId { i++; } endTime = timenow(); info(strFmt("join: %1, i = %2", endTime - startTime, i)); } X++: 2 while select: 99, i = 56347 join: 129, i = 56347 |
|