有時當進行performance tuning 時, 有時會在ORM 層面遇到問題. 檢查記錄後, 發覺原來透過Entity Framework 將LINQ 或Lambla express 轉換成SQL 時會出產生了不必要的Check null, 從而使Index 不能觸發, 亦因此令執行時間變長.
要解決的話, 只須在DbContext 中Disable 其設定便可.
public class DataContext : DbContext { public DataContext() { this.Configuration.UseDatabaseNullSemantics = true; } }
參考資料
- DbContextConfiguration.UseDatabaseNullSemantics Property, MSDN, https://msdn.microsoft.com/en-us/library/system.data.entity.infrastructure.dbcontextconfiguration.usedatabasenullsemantics(v=vs.113).aspx
Leave a Reply