Ну и в качестве окончательной оптимизации, если вы используете DAX 2009, можно попробовать:
X++:
ttsbegin;
insert_recordset paramValue2(BuildCode,ParamCode)
select BuildCode from buildTable
join paramCode from buildParam
not exists join ParamCode from paramValue where paramValue.BuildCode == buildTable.BuildCode
&& paramValue.ParamCode == buildParam.ParamCode;
ttscommit;
Обрабатывается всего в две операции с БД. Одна -селект во временную таблицу, вторая - вставка из временной таблицы в постоянную, с выделением recId.
Да - если у вас переопределен insert() на paramValue, то особого убыстрения не случится, поскольку в этом случае, все будет выполнятся примерно также как в варианте mazzy.