1.EF:this.Configuration.UseDatabaseNullSemantics = true; //關閉數據庫null比較行為
2.實體必填字段要加:[Required]屬性,可定長度的必加[StringLength(20)]屬性,要不然數據庫字段串會變成:nvarchar(MAX) NULL,查詢時會產生多余的or條件,影響性能
3.EF不要寫太復雜的表達式,可能會產生很復雜的sql性能不好
4.盡量不使用字符串轉表達式的方法
5.解決數據庫死鎖可使用事務和no lock方法
6.查找缺失索引
7.DMV查找性能問題sql語句
8.程序中性能定位:在vs工具的菜單:分析-->探查器-->附加/分離(將探查器附加到進程),就可對此服務器進行性能測試了
注意:vs分析項目要和部署的dll版本一致
---------------------------其它同事優化配置
public EAMContext()
: base("EAM")
{
this.Configuration.AutoDetectChangesEnabled = false;//關閉自動跟蹤對象的屬性變化
this.Configuration.LazyLoadingEnabled = false; //關閉延遲加載
this.Configuration.ProxyCreationEnabled = false; //關閉代理類
this.Configuration.ValidateOnSaveEnabled = false; //關閉保存時的實體驗證
this.Configuration.UseDatabaseNullSemantics = true; //關閉數據庫null比較行為
}