У меня следующий запрос, выполнение которого занимает почти 1 минуту.
public static Func<Entities, string, IQueryable<string>> compiledInvoiceQuery =
CompiledQuery.Compile((Entities ctx, string orderNumb) =>
(from order in ctx.SOP10100
where order.ORIGNUMB == orderNumb
select order.SOPNUMBE).Union(
from order in ctx.SOP30200
where order.ORIGNUMB == orderNumb
select order.SOPNUMBE)
);
Он фильтрует на основе ORIGNUMB, который не является моим первичным ключом, я даже не могу добавить индекс для него. Есть ли у нас другой способ сделать это быстрее? Я проверил на сервере sql и обнаружил, что только запрос
from order in ctx.SOP10100
where order.ORIGNUMB == orderNumb
select order.SOPNUMBE
или
select SOPNUMBE
from SOP10100
where ORIGNUMB = @orderNumb
занимает больше 55 секунд. Пожалуйста, предложите.