科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道影响SQL Server数据库性能设计关键(1)

影响SQL Server数据库性能设计关键(1)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

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

作者:guangyuan007 来源:赛迪网技术社区 2007年9月5日

关键字: 3977 数据库 SQL Server SQL Server 各版本

  • 评论
  • 分享微博
  • 分享邮件
 

1 逻辑数据库和表的设计

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

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

A:由于表窄,因此可以使排序和建立索引更为迅速;

B:由于多表,所以多镞的索引成为可能;

C:更窄更紧凑的索引;

D:每个表中可以有少一些的索引,因此可以提高insert update delete等的速度,因为这些操作在索引多的情况下会对系统性能产生很大的影响;

E:更少的空值和更少的多余值,增加了数据库的紧凑性由于标准化,所以会增加了在获取数据时引用表的数目和其间的连接关系的复杂性。太多的表和复杂的连接关系会降低服务器的性能,因此在这两者之间需要综合考虑。

定义具有相关关系的主键和外来键时应该注意的事项主要是:用于连接多表的主键和参考的键要有相同的数据类型。

2 索引的设计

A:尽量避免表扫描

检查你的查询语句的where子句,因为这是优化器重要关注的地方。包含在where里面的每一列(column)都是可能的侯选索引,为能达到最优的性能,考虑在下面给出的例子:对于在where子句中给出了column1这个列。

下面的两个条件可以提高索引的优化查询性能!

第一:在表中的column1列上有一个单索引。

第二:在表中有多索引,但是column1是第一个索引的列。

避免定义多索引而column1是第二个或后面的索引,这样的索引不能优化服务器性能。

例如:下面的例子用了pubs数据库。

  SELECT au_id, au_lname, au_fname FROM authors

  WHERE au_lname = ’White’

按下面几个列上建立的索引将会是对优化器有用的索引

  au_lname

  au_lname, au_fname

而在下面几个列上建立的索引将不会对优化器起到好的作用

  au_address

  au_fname, au_lname
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章