北方站长站
客服热线:0632-5117766

可以提高数据库查询性能的反规范设计 (1)

[2008-04-22 08:53:00] 作者:Solomon 来源:北方站长站

Tags:←

  

【北方站长站-IT技术报道】数据的反规范

◆反规范的好处

是否规范化的程度越高越好?这要根据需要来决定,因为“分离”越深,产生的关系越多,关系过多,连接操作越频繁,而连接操作是最费时间的,特别对以查询为主的数据库应用来说,频繁的连接会影响查询速度。所以,关系有时故意保留成非规范化的,或者规范化以后又反规范了,这样做通常是为了改进性能。例如账户系统中的“账户”表B-TB01,它的列busi-balance(企业账户的总余额)就违反规范,其中的值可以通过下面的查询获得:

 

select busi-code,sum(acc-balance)   from B-TB06    group by busi-code

如果B-TB01中没有该列,若想获得busi-name(企业名称)和企业账户的总余额,则需要做连接操作:

select busi-name,sum(acc-balance)    from B-TB01,B-TB06    where B-TB01.busi-code=B-TB06.busi-code    group by busi-code

  

如果经常做这种查询,则就有必要在B-TB01中加入列busi-balance,相应的代价则是必须在表B-TB06上创建增、删、改的触发器来维护B-TB01表上busi-balance列的值。类似的情况在决策支持系统中经常发生。  

反规范的好处是降低连接操作的需求、降低外码和索引的数目,还可能减少表的数目,相应带来的问题是可能出现数据的完整性问题。加快查询速度,但会降低修改速度。因此决定做反规范时,一定要权衡利弊,仔细分析应用的数据存取需求和实际的性能特点,好的索引和其它方法经常能够解决性能问题,而不必采用反规范这种方法。  

◆常用的反规范技术

在进行反规范操作之前,要充分考虑数据的存取需求、常用表的大小、一些特殊的计算(例如合计)、数据的物理存储位置等。常用的反规范技术有增加冗余列、增加派生列、重新组表和分割表。

 

News

 

info

 

down

出售手机裁听器,手机跟踪定位系统    企业网站,网城,购物网,都市导购,校园网    网上书店系统    上海电信机房服务器托管,双线主机托管    美女图片馆    15G 高清晰图片资源 无水印    室内装潢材料新产品杰威尔艺术漆    收一万ip的美女图片    大量收购个人网址导航网站    出售网址站PR=4alexa=119,764    

1 2 下一页

下一篇链接:安装时出现一般网络性错误的解决方法

上一篇链接:在SQL Server数据库中如何减少死锁发生 (1)

评论】 【打印】 【加入收藏】 【关闭→论坛 →博客 →数据中心

 共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面