2016-11-05 4 views
1

Я использую Entity Framework для реализации многопользовательского (такую ​​же БД, те же схема):Должен ли я указывать колонку TenantId?

public class Report : ITenantEntity 
{ 
    public Report() { } 
    [Key] 
    public int ReportId { get; set; } 
    [Required] 
    public int TenantId { get; set; } 
    public DateTime DateSent { get; set; } 
} 

Я не имею Tenant ПОКО, только статические идентификаторы.

Должен ли я индексировать TenantId каким-то образом? Все запросы теперь включают фильтрацию на TenantId, поэтому я хочу убедиться, что я не убиваю производительность, не имея надлежащих индексов.

ответ

1

Конечно, вы также фильтруете свои данные для арендаторов, наличие соответствующего индекса имеет решающее значение для производительности. Далее, в зависимости от загрузки базы данных и процедуры обслуживания базы данных, было бы полезно рассмотреть дополнительные меры оптимизации: сделать некоторые кластерные индексы, использовать секционированные таблицы, использовать серверы базы данных с серверами и т. Д.

В какой-то момент вы можете сделать арендаторов изолированными на уровне базы данных и могут использовать параметрические представления и хранимые процедуры для выделения физических и презентационных уровней базы данных. Во всяком случае, оптимизация производственной базы данных лежит далеко от схемы автогенерации EF.

 Смежные вопросы

  • Нет связанных вопросов^_^