Sql性能高阶优化(SqlServer)

以下为实际项目中遇到的sql优化,直接上笔记。

  1. 通过SQL执行计划有针对性定位问题。
  2. 表后面增加with(nolock),所有查询的表都要增加这个不锁表机制。
  3. 利用内存临时表或内存表变量暂存视图查询结果,而不是放在where条件里,注意内存临时表也要创建索引,这一步的性能提升最大。如果有重用数据部分使用 with temp1 as ()
  4. 运算不要放在where条件里,比如STRING_SPLIT等。
  5. where条件里能用exists代替就不要用in,大数据量下性能还可以再提升一点。
  6. 总原则就是查询时,不要在where条件里增加多余运算量,提取到条件外面。
  7. or 改为union all或union
  8. 尽量避免使用视图。有join的视图,再和其他表join,性能就不用说了。
  9. Dapper中In后,不要使用参数传入,使用拼接字符串形式

LEAVE A REPLY

loading