您当前位置:优侠库 > 资讯攻略 >
来源:未知
2019-06-19 20:01:06 浏览: 分类:资讯攻略

SQL Server性能的改进得益于逻辑数据库设计

SQL语句优化的原则:

◆1.使用index可以更快地遍历表。

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

◆2,IS NULL和IS NOT NULL

不能使用null作为索引,任何包含null值的列都不会包含在索引中。即使索引有多个列,只要其中一列包含null,该列就会被排除在索引之外。也就是说,如果一个列的值为空,即使对该列进行索引也不会提高性能。任何在where子句中使用is null或not null的语句优化器都不允许使用索引。

◆3、在和存在

EXISTS远比IN高效。它包括全表扫描和范围扫描。将几乎所有IN运算符子查询重写为使用EXISTS的子查询。

◆4.在批量查询中尽量少用格式转换。

◆5.在sql server 2000中,如果存储过程只有一个参数,并且是输出类型,那么在调用这个存储过程时,需要给这个参数一个初始值,否则会出现调用错误。

◆6.排序依据和分组依据

使用ORDER BY和GROUP BY短语,任何索引都可以提高SELECT的性能。请注意,如果索引列中有空值,优化器将无法优化。

◆7.对列的任何操作都会导致表扫描,表扫描包括数据库函数、计算表达式等。查询时,应尽可能将操作移至等号右侧。

◆8、IN、OR子句经常使用工作表使索引无效。如果重复值不多,可以考虑反汇编该子句。反汇编子句中应包含索引。

◆9.将SHOWPLAN_ALL设置为ON以查看实现计划。DBCC检查数据库数据的完整性。

DBCC(数据库一致性检查器)是一套用于验证SQL Server数据库完整性的程序。

◆10.小心使用游标。

在某些必须使用游标的情况下,可以考虑将符合条件的数据行转移到临时表中,然后在临时表上定义游标,这样可以显著提高性能。

数据库优化的方法:

1.关键字段被编入索引。

2.使用存储过程,它使SQL更加灵活和高效。

3.备份数据库并删除垃圾数据。

4.SQL语句语法的优化。(可以用Sybase的SQL Expert,可惜我找不到未过期的。

序列号)

5.清理并删除日志。

总结:

优化的WHERE子句使用索引,但是如果没有优化,就会发生表扫描或额外开销。事实证明,SQL Server性能的最大提高是由于逻辑数据库设计,

索引设计和查询设计。相反,最大的性能问题往往是由这些方面的不足引起的。其实SQL优化的本质就是在结果正确的前提下,通过使用优化器能够识别的语句来充分利用索引,从而减少表扫描的I/O次数,尽可能避免表搜索。其实SQL的性能优化是一个复杂的过程,以上只是应用层面的一个体现。深入的研究还会涉及到数据库层的资源分配、网络层的流量控制和操作系统层的整体设计。

关键词:SQL Server

优侠库网站每天提供最新最热门的安卓手机软件、游戏下载、分享热门手游资讯攻略教程、手机软件教程步骤,专注安卓手机游戏软件下载。

本文链接:http://www.123down.cn/gonglue/227214.html

攻略资讯
安卓软件
安卓游戏