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比较行为
}