2016-11-05 63 views
1

我使用實體框架來實現多租戶(同樣分貝,相同的模式):我應該索引我的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 POCO,只是靜態的ID。

我應該以某種方式在TenantId上進行索引嗎?現在所有的查詢都涉及對TenantId進行過濾,所以我想確保我沒有通過沒有適當的索引來殺死性能。

回答

1

當然,除了您在租戶上過濾數據之外,適當索引的存在對於性能至關重要。進一步取決於數據庫加載和數據庫維護程序可能會有助於考慮其他優化措施:使某些索引成羣集,使用分區表,使用聯合數據庫服務器等。

在某些時候,您可能會使租戶在數據庫級別隔離,可以使用參數化視圖和存儲過程來隔離數據庫的物理層和表示層。無論如何,生產數據庫的優化與EF自動生成的數據庫方案相差甚遠。

相關問題