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