当前位置:文库下载 > 所有分类 > 工程科技 > 能源/化工 > SQL Server优化性能的几个大方向
免费下载此文档

SQL Server优化性能的几个大方向

1如何去掉羞怯那层茧

春江潮水连海平,海上明月共潮生。管中窥豹,时见一斑。疾风知劲草,板荡识诚臣。秋风吹不尽,总是玉关情。细雨鱼儿出,微风燕子斜。SQL Server 优化性能的几个方面

(一).数据库的设计

可以参看最近论坛上出现一个精华帖http://www.wenkuxiazai.com/u/20100415/10/a377d835-acbd-4815-8bcb-b367f88ac8b5.html?92227
数据库设计包含物理设计和逻辑设计:
物理设计上可以通过使用RAID硬件架构。
简单说下使用策略:
a.RAID0可以用在只读的数据库数据表,或者是经过复制过来的数据库上,如果你对数据丢失不敏感的话也可以使用,总之这个level下是高性能无冗余;
b.RAID 5 与RAID1 不同之处就是多了奇偶校验,所有的奇偶校验的信息会遍布各个磁盘,性能上要比RAID1高些,但是一旦发生磁盘I/O失败,就会造成性能急剧下降,同时这种方法也在RAID0 与RAID1间折了中,是比较通用的做法。
c.RAID 10 就是RAID0 与 RAID1的组合,它提供了高性能,高可用性,性能上要比RAID5好,特别适合大量写入的应用程序,但是就是成本比较高无论是多少块磁盘你都是将损失一半的磁盘存储

逻辑设计上可以通过使用数据库的一些组件比如表、约束等,在这里首先提下文件组的使用。当你经费不足,无法购买一个完整的RAID系统的时候,你可以考虑文件组。
文件和文件组体系结构一些小节:http://www.wenkuxiazai.com/feixianxxx/archive/2010/01/28/5267290.aspx
它的原理就是多硬盘同时读取,减少磁盘空间争夺,提高读取效率。

我在这再稍微说几点:

a.范式和数据表的分割和合并
我们在设计数据库的时候一般会追求规范,一般会至少达到3NF.在这之后,也许会因为表中某些经常用于存储查询的字段而把它们从表中分割,否则大量用户
同时大量访问一个热门表,效率会变差。当然有时候也会进行合并表的设计,这样可以用少量的冗余换来减少过多连接的运算。
具体关于这个设计表到什么程度,是否需要分割和合并都是因业务需求和系统承载力而定的,可以参看更多这方面的书籍。

b.主键与外键
作为表与表之间的联系,最直接的就是通过主外键进行联系。主键对于一个表来说是非常重要的,它能在表中作为行的唯一标识存在,要求:唯一性,不可为NULL和最小性。
其中最小性指的是作


为主键一定要窄。如果键值过大,由于经常存取,它会让数据库系统变得没有效率,而且它需要维护。一般使用1-4字节的字段作为主键。

c.表字段的取舍
尽量让你的表字段类型“适可而止”,即在符合一般需求长度的前提下,最多稍微增加长度,不要过多浪费。字段存储直接体现在页中。行长越短,一页就

第1页

免费下载Word文档免费下载:SQL Server优化性能的几个大方向

(下载1-3页,共3页)

我要评论

返回顶部