Если у меня есть четыре таблицы RecordProducts, Records, Products и Defendants с RecordProducts, имеющие эти значения в качестве идентификаторов для других трех таблиц.
RecordProductsId,
RecordId,
ProductId,
DefendantId
Когда я запускаю запрос моей структуры сущностей, чтобы получить RecordProduct и запись. Имя, имя продукта, имя ответчика. Имя
и мой запрос объединяет, есть ли разница в производительности, если есть
- нет индекса для RecordId, ProductId и DefendantId?
- индекс первичного ключа для всех трех как один?
- отдельные внешние ключи в RecordId и ProductId
- Я понимаю, что внешние ключи не являются кластеризованными индексами, но здесь это имеет значение
в качестве примера мой запрос выглядит примерно так
var recordProducts = context.RecordsProducts
.Where(rp => rp.RecordId == input.RecordId && rp.IsActive == true)
.Include(rp => rp.Record)
.Include(rp => rp.Product)
.Include(rp => rp.Defendant);
var recordProductsVM = recordProducts.Select(rp => new GetRecordProductsViewModel
{
Id = rp.Id,
RecordName = rp.Record.Name ,
ProductName = rp.Product.Name ,
DefendantName = rp.Defendant.Name,
...
});