一 有效的使用索引
1. 避免不可参数化的搜索条件
比如 <>,!=,not exists, not in, like'%abc'. 尝试用 between 代替in
2.避免where子句列上的算术运算符
3.避免 where子句列上的函数
如果避无可避, 尝试抽取出其中比较简单的逻辑。
二 避免优化器提示
1.连接提示
option(连接方式)
2 索引提示
with (index )
三 使用域和参照完整性
1 非空约束
定义非空列约束帮助优化器在查询中该列上使用isnull函数时生成一个有效的处理策略
2.参照完整性
constraint
四 避免资源密集型查询
1.避免数据类型转换
2.exists 代替 count() 验证数据存在
3.union all 代替 union
4.为聚合 比如min max 和排序操作使用索引
五 降低事务开销
1.减少日志开销
dbcc sqlperf(logspace) 查看日志控件百分比 避免使用while
2.减少锁开销。
with(nolock)