影响SQLserver性能的关键三个方面

影响SQLserver性能的关键三个方面,第1张

影响SQLserver性能的关键三个方面,第2张

1逻辑数据库和表的设计

数据库的逻辑设计,包括表之间的关系,是优化关系数据库性能的核心。良好的逻辑数据库设计可以为优化数据库和应用程序打下良好的基础。

标准化的数据库逻辑设计包括用许多有相互关系的窄表代替许多列的长数据表。以下是使用标准化表格的一些好处。

答:因为表比较窄,可以让排序和索引更快。

b:因为有多个表,所以可以索引多个表。

c:更窄、更紧凑的索引

d:每个表中可以有更少的索引,所以插入、更新、删除等的速度。可以改进,因为索引多的时候这些操作会对系统性能产生很大的影响。

e:更少的空值和更少的冗余值增加了数据库的紧凑性。

因为标准化,在获取数据时会增加引用表的数量和它们之间连接关系的复杂程度。表太多,连接太复杂,会降低服务器的性能,需要综合考虑。
定义具有相关性的主键和外键时需要注意的是,用于连接多个表的主键和被引用键应该具有相同的数据类型。

指标2的设计

答:尽量避免表扫描
检查查询语句的where子句,因为这是优化器的一个重要考虑因素。where中包含的每一列都是可能的候选索引。为了获得这种性能,请考虑以下示例:where子句中给出了column1。
以下两个条件可以提高索引的优化查询性能!
首先,表中的column1列只有一个索引
其次,表中有多个索引,但column1是第一个索引列,以避免定义多个索引,column1是第二个或后面的索引。这种索引无法优化服务器性能
。例如,下面的示例中使用了pubs数据库。
select au _ id,au _ lname,au _ fname from authors
其中au _ lname =' white'
基于以下列构建的索引将是优化器的有用索引
?au_lname
?Au_lname、au_fname
和基于以下列构建的索引对于优化器来说不会很好地工作
?au_address
?Au_fname,au_lname
考虑对一列或两列使用窄索引。窄索引比多重索引和复合索引更有效。使用窄索引,每页上将有更多的行和更少的索引级别(与多索引和复合索引相比),这将促进系统性能。
对于多列索引,SQL Server在索引的所有列上维护一个密度统计信息(对于union ),在第一个索引上维护一个直方图统计信息。根据统计结果,如果很少选择复合索引上的第一个索引,优化器将不会对许多查询请求使用该索引。
有用的索引可以提高select语句的性能,包括insert、uo date和delete。
但是,更改表的内容会影响索引。每个insert、update和delete语句都会降低性能。实验表明,我们不应该在单个表上使用大量索引,也不应该在共享列上使用重叠索引(指多个表中的引用约束)。
将列中检查的数据数与表中数据的行数进行比较。这就是数据的选择性,比较结果会帮助你决定是否将某一列作为候选索引列,如果是,建立什么样的索引。您可以使用以下查询语句返回一列中不同值的数量。
Select Count(distinct cloud _ name)from table _ name
假设column_name是一个有10,000行的表,查看column_name的返回值来决定是否应该使用它以及应该使用什么索引。
唯一值索引

5000非聚集索引
20聚集索引
3无索引

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 影响SQLserver性能的关键三个方面

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情