mssql sqlserver优化的基本原则分享


摘要:
下文结合作者多年的数据库开发工作,所总结出来的mssql优化知识,欢迎大家积极参与讨论



1、数据库结构规划

根据当前的业务设计好的数据结构,此结构需满足后续业务扩展,报表查询,及符合业务数据的要求.
例:历史的保存不会随着 参数字段的改变而改变
报表查询不会关联过多的表
即时业务不会由于报表的查询而无法使用
数据一致性的校验。。。

2、数据存放位置

2.1 分表
将业务根据实际情况分为不同的小表,提高系统的读写效率。
2.2 分区
将数据表分为不同的数据区,存在在系统的不同磁盘上,提高磁盘 IO性能

3、建立合适的索引

根据业务的需要创建合适的索引,及索引的顺序是否符合常用的排序顺序
索引包含的列是否为业务所需的返回列,
单张表的索引过多(索引过多会导致写入速度变慢)

4、减少DB的访问次数

减少连接DB的次数,如果数据量过小,一次性将所有数据加载至内存中,然后慢慢的处理,
通过减少DB的访问次数,达到减少磁盘的访问。

5、减少数据返回,只返回所需数据

通过减少返回不必要的列,达到减少磁盘和网络的压力

6、编写优秀的sql脚本

6.1 尽量少编写 where [列名] is null 或 [列名] is not null
6.2 多使用exists替换 in
6.3 多实用连接替换子查询
6.4 使用union all 替换union
6.5 少用or
6.6 注意where条件后面的条件顺序–可减少sql脚本解析时间