Во-первых, я сомневаюсь, что вы действительно хотите полное внешнее соединение.Я предполагаю, что left join
достаточно:
select B.bdregno, B.srno, B.bdbillno, B.bdfees, B.bdqt,
B.bdrcode, B.bdtno, B.bdvdate, T.TNAME
from dbo.[billdet] B left join
dbo.[test] T
on T.TCODE = B.bdtcode
where b.bdregno = ? --'" + hdfregno.Value + "'
order by b.bdvdate asc, srno
Для этого запроса вы хотите индексы на billdet(bdregno, bdtcode)
.Движок все равно должен будет выполнить слияние.
Обратите внимание, что вы должны передавать значение в качестве параметра , а не обрабатывать строку запроса.