前一段时间,出差到北京进行了SQL Server优化方面的学习。
总结如下:
1. 每个数据库对象应该使用在最初创建该对象时的目的而使用,使用在其它目的下会降低其性能。
2. 数据文件的数量与CPU的数量保持一致,数据文件增加率定为nMB而不是按%增长。
3. 在备份的模式为Full的前提下,每小时进行Log备份,每天删除前一天的Log备份。
4. 聚集索引对于大范围搜索性能很好,几乎范围涵盖所有数据。
5. 非聚集索引对于范围搜索性能很差。
6. 创建多个非聚集索引对表的插入,修改,删除的性能会下降,所以不推荐在一个表中创建多个非聚集索引。使用Covered Index的时候非聚集索引的性能要好过聚集索引。
7. 每天更新表的索引统计信息。
8. 定期进行索引的碎片整理。
9. Cell Join的性能要好于Inner Join。
10. 进行查询的时候使用(SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED)设置进行Dirty Read以实现更好的性能。
SQL查询语句的原则只检索需要的字段。