Я могу видеть, что это медленное объяснение, состоит в том, что у вас нет индекса на ExternalId
в таблице, к которой вы запрашиваете - поэтому вы выполняете полное сканирование таблицы вместо поиска по индексу.
Ваш запрос в настоящее время не имеет особого смысла - у вас есть foreach
, но вы возвращаете первый результат, который вы загружаете - зачем тогда цикл?
Другая проблема, если запустить его в циклеявляется то, что вы делаете N обходов базы данных, которые являются очень дорогостоящими.Если вы просто пытаетесь загрузить набор сущностей, которые соответствуют некоторым идентификаторам, найденным в вашем XML, я бы вместо этого загрузил их в виде пакетов.Просто выполните запрос Contains()
и передайте массив идентификаторов.