SQLServer数据库高性能优化经验综述
本文主要介绍了SQL Server数据库的正确优化经验,包括在实际操作中值得注意的地方,以及sql语句优化的基本原理,文章的主要内容如下。优化数据库的注意事项:
1、索引键字段。
2。使用存储过程,它使SQL更加灵活和高效。
三.备份数据库并清除垃圾数据。
4、对SQL语句的语法优化。(你可以使用Sybase SQL专家,遗憾的是我没有找到有效的序列号)
5,清理删除日志。
sql语句优化的基本原理:
1,使用索引遍历表更快。
默认创建的索引是非集群索引,但有时不是最好的。在非聚集索引中,数据物理存储在数据页上。合理的索引设计应基于对各种查询的分析和预测。
一般来说:
一个具有大量重复值的列,通常有一个范围查询(介于,>,=,< =)和按顺序排列,可以考虑设置一个集群索引。
2。通常,在同一时间,多个列同时访问,每个列都有一个重复值,可以考虑建立一个组合索引。
组合索引应尽可能使关键字查询形成索引覆盖,其前导列必须是最常用的列。
2,为null,而不是空值。
空是没有索引,并包含空值的列将不计入指数,即使指数有多柱的情况下,只要这些列包含空值,该列将被排除在索引中。也就是说,如果一列中有一个空值,即使列建立索引提高性能也不会。任何使用语句优化器是null或WHERE子句中不允许使用索引是无效的。
3,存在和存在
存在比更有效。它与全表扫描,扫描范围。几乎所有的运营商查询改写为子查询使用存在。
4,在海量查询中尽可能少地进行格式转换。
5。在SQL Server 2000中
如果存储过程只有一个参数和输出类型,则在调用这个存储过程时必须给这个参数一个初始值,否则将出现一个调用错误。
6,为了和GROPU
使用顺序和按词组分组,任何索引都有助于提高选择的性能。注意,如果索引列中有null值,优化器将不会被优化。
7,列上的任何操作都会导致表扫描。它包括SQL Server数据库功能、计算表达式等。在查询时,应尽可能地将操作移动到等号的右侧。
8、内、或子句经常使用工作表使索引无效。如果不产生大量重复的值,则可以将子语句分开。
9、设置showplan_all > 10,谨慎使用游标
在某些情况下,您必须使用游标,您可以考虑将合格数据行传输到临时表中,然后在临时表上定义游标,从而显著提高性能。
注:所谓的优化就是WHERE子句中利用了索引,不可优化的表扫描或额外的开销。经验表明,在SQL Server数据库中受益的逻辑数据库设计,性能的改善最好的指标设计、查询设计。反过来,性能最大的问题是经常在这些方面的不足造成的。
事实上,SQL优化的实质是在正确的结果的前提下使用优化器可以识别的语句,充分利用索引,减少表扫描的I/O次数,尽量避免表搜索的发生,实际上,sql性能的优化是一个复杂的过程。以上只是应用层的反映。进一步的研究涉及到SQL Server数据库层的资源分配、网络层的流量控制和操作系统级的总体设计。