优化数据库的思想及sql语句优化的原则

优化数据库的思想及sql语句优化的原则,第1张

优化数据库的思想及sql语句优化的原则,第2张

数据库优化的思路:
= = = = = = = = = = = = = =
1。关键字段被编入索引。
2。使用存储过程使SQL更加灵活和高效。
3。备份数据库,清理垃圾数据。
4。SQL语句语法的优化。(可以用Sybase的SQL Expert,可惜我找不到未过期的序列号)
5。清理并删除日志。

SQL语句优化的原则:
= = = = = = = = = = = = = = = =
1。使用索引来更快地遍历表。
默认情况下建立的索引是非聚集索引,但有时并非如此。在非聚集索引下,数据随机存储在数据页上。合理的索引设计应该基于对各种查询的分析和预测。一般来说:
①。对于具有大量重复值和频繁范围查询
(between,>,=,< =)以及order by和group by的列,可以考虑建立聚集索引。
②。经常同时访问多个列,并且每个列都包含重复的值。考虑建立一个综合指数;
③。组合索引应尽可能覆盖关键查询,其前导列必须是最常用的列。虽然索引可以提高性能,但是索引越多越好。反之,过多的索引会导致系统效率低下。每次向用户表添加索引时,都需要相应地更新索引集合。

2.IS NULL和IS NOT NULL
不能按NULL进行索引,任何包含NULL值的列都不会包含在索引中。即使索引有多个列,只要其中一列包含null,该列就会被排除在索引之外。也就是说,如果一个列的值为空,即使对该列进行索引也不会提高性能。任何在where子句中使用is null或not null的语句优化器都不允许使用索引。
3、IN和EXISTS
EXISTS远比IN效率高。它包括全表扫描和范围扫描。将几乎所有IN运算符子查询重写为使用EXISTS的子查询。
4。海量查询时尽量少用格式转换。
5。在SQL SERVER 2000中,如果存储过程只有一个参数,并且是输出类型,那么在调用这个存储过程时,需要给这个参数一个初始值,否则会出现调用错误。
6、ORDER BY和GROUP BY
使用ORDER BY和GROUP BY这两个短语,任何种类的索引都有助于提高SELECT的性能。请注意,如果索引列中有空值,优化器将无法优化。
7。对列的任何操作都会导致表扫描,包括数据库函数、计算表达式等。查询时,尽可能将操作移到等号右边。
8、IN或子句经常使用工作表使索引无效。如果重复值不多,可以考虑反汇编该子句。反汇编子句中应包含索引。
9。将SHOWPLAN_ALL设置为ON以查看实现计划。DBCC检查数据库数据的完整性。
DBCC(数据库一致性检查器)是一组用于验证SQL Server数据库完整性的程序。
10。慎用游标
在某些必须使用游标的情况下,可以考虑将符合条件的数据行转移到临时表中,然后操作临时表定义的游标,这样可以显著提高性能。

总结:

所谓优化是指WHERE子句利用索引,而非优化是指发生表扫描或额外开销。经验表明,SQL Server性能的提高得益于逻辑数据库设计、索引设计和查询设计。相反,的性能问题往往是由这些方面的缺陷引起的。其实SQL优化的本质就是在结果正确的前提下,通过使用优化器能够识别的语句来充分利用索引,从而减少表扫描的I/O次数,尽可能避免表搜索。其实SQL的性能优化是一个复杂的过程,以上只是应用层面的一个体现。深入的研究还会涉及到数据库层的资源分配、网络层的流量控制以及操作系统层的整体设计。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 优化数据库的思想及sql语句优化的原则

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情