



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库宝典概要:数据库是企业信息的核心,其应用水平的高低直接影响到企业管理水平。选择了一个 高性能的数据库产品不等于就有一个好的数据库应用系统,如果数据库系统设计不合理,不仅会增加客户端和服务器端程序的编程和维护的难度,而且还会影响系统实际运行的性能。 主要涉及数据库各种性能优化技术,从而避免磁盘I/O瓶颈、减少CPU利用率、大内存的设置和减少资源竞争。大型数据库的设计与开发要复杂得多,因此在设计、开发过程中,除了要遵循数据库 范式理论、增加系统的一致性和完整性外,还要在总体上根据具体情况进行分布式设计,紧紧把握集中控制、统一审核的基本原则,保证数据库设计结构紧凑、分布平衡、定位迅速。数据库设
2、计考虑工作一、成立数据小组大型数据库数据元素多, 在设计上有必要成立专门的数据小组。 由于数据库设计者不一 定是使用者,对系统设计中的数据元素不可能考虑周全, 数据库设计出来后, 往往难以找到 所需的库表,因此数据小组最好由熟悉业务的项目骨干组成。数据小组的职能并非是设计数据库, 而是通过需求分析,在参考其他相似系统的基础上, 提取系统的基本数据元素,担负对数据库的审核。审核内容包括审核新的数据库元素是否完 全、能否实现全部业务需求;对旧数据库(如果存在旧系统)的分析及数据转换;数据库设 计的审核、控制及必要调整。二、设计原则1规范命名。所有的库名、表名、域名必须遵循统一的命名规则,并进行必要
3、说明,以方 便设计、维护、查询。2 控制字段的引用。在设计时,可以选择适当的数据库设计管理工具,以方便开发人员的 分布式设计和数据小组的集中审核管理。采用统一的命名规则,如果设计的字段已经存在, 可直接引用;否则,应重新设计。3 库表重复控制。 在设计过程中,如果发现大部分字段都已存在,开发人员应怀疑所设计的库表是否已存在。 通过对字段所在库表及相应设计人员的查询,可以确认库表是否确实重复。4.并发控制。设计中应进行并发控制,即对于同一个库表,在同一时间只有一个人有控制 权,其他人只能进行查询。5 必要的讨论。数据库设计完成后,数据小组应与相关人员进行讨论,通过讨论来熟悉数 据库,从而对设计中
4、存在的问题进行控制或从中获取数据库设计的必要信息。6数据小组的审核。库表的定版、修改最终都要通过数据小组的审核,以保证符合必要的要求。7头文件处理。每次数据修改后,数据小组要对相应的头文件进行修改(可由管理软件自动完成),并通知相关的开发人员,以便进行相应的程序修改。三、设计技巧(注:以下例如都是从网络上查到的例子,有可能不恰当,请指出改正)1 分类拆分数据量大的表。对于经常使用的表(如某些参数表或代码对照表),由于其使用频率很高,要尽量减少表中的记录数量。(分好主从关系表的关系) 例如,银行的户主账表原来设计成一张表,虽然可以方便程序的设计与维护, 但经过分析发现,由于数据量太大, 会影响数
5、据的迅速定位。 如果将户主账表分别设计为活期户主账、 定期户主账及对公户主账 等,则可以大大提高查询效率。2 .索引设计。对于大的数据库表,合理的索引能够提高整个数据库的操作效率。在索引设计中,索引字段应挑选重复值较少的字段;在对建有复合索引的字段进行检索时,应注意按照复合索引字段建立的顺序进行。例如,如果对一个5万多条记录的流水表以日期和流水号为序建立复合索引,由于在该表中日期的重复值接近整个表的记录数,用流水号进行查询所用的时间接近3秒;而如果以流水号为索引字段建立索引进行相同的查询,所用时间不到1秒。因此在大型数据库设计中,只有进行合理的索引字段选择,才能有效提高整个数据库的操作效率。3
6、 数据操作的优化。在大型数据库中,如何提高数据操作效率值得关注。将单元业务尽量一次提交执行,减少提交次数,这样减少了I/O操作。建议用 ORM框架,个人建议用微软的 EF4.1 (linq to entity )。4 必要的工具。在整个数据库的开发与设计过程中,可以先开发一些小的应用工具,如自 动生成库表的头文件、插入数据的初始化、数据插入的函数封装、错误跟踪或自动显示等, 以此提高数据库的设计与开发效率。(自己开发了一部分工具)5 .避免长事务。对单个大表的删除或插入操作会带来大事务,较好的解决方法是,把整个事务分解成几个较小的事务,再由应用程序控制整个系统的流程。这样,如果其中某个事务不成
7、功,则只需重做该事务,因而既可节约时间,又可避免长事务。6 适当超前。计算机技术发展日新月异,数据库的设计必须具有一定前瞻性,不但要满足当前的应用要求,还要考虑未来的业务发展,同时必须有利于扩展或增加应用系统的处理功数据库设计概要:基于第三范式的数据库表的基本设计,建立主键和索引的策略和方案,然后 从数据库表的扩展设计和库表对象的放置等角度概述了数据库管理系统的优化1. 基本表的设计规范是第三范式(3NF)。第三范式的基本特征是非主键属性只依赖于主键属性。基于第三范式的数据库表设计具有很多优点:一是消除了冗余数据,节省了磁盘 存储空间;二是有良好的数据完整性限制,即基于主外键的参照完整限制和基
8、于主键的实体完整性限制,这使得数据容易维护,也容易移植和更新;三是数据的可逆性好,在 做连接(Join)查询或者合并表时不遗漏、也不重复;四是因消除了冗余数据(冗余列), 在查询(Select)时每个数据页存的数据行就多,这样就有效地减少了逻辑 I/O,每个Cash存的页面就多,也减少物理I/O;五是对大多数事务(Tra nsactio n)而言,运行性能好;六是物理设计(Physical Design)的机动性较大,能满足日益增长的用户需求。2. 主键(Primary Key):主键被用于复杂的 SQL语句时,频繁地在数据访问中被用到。一个表只有一个主键。主键应该有固定值(不能为Null或缺
9、省值,要有相对稳定性),不含代码信息,易访问。把常用的列作为主键才有意义。短主键最佳(小于25bytes),主键的长短影响索引的大小,索引的大小影响索引页的大小,从而影响磁盘I/O。主键分为自然主键和人为主键。自然主键由实体的属性构成,自然主键可以是复合性的,在形成 复合主键时,主键列不能太多,复合主键使得Join*作复杂化、也增加了外键表的大小。 人为主键是,在没有合适的自然属性键、或自然属性复杂或灵敏度高时,人为形成的。 人为主键一般是整型值(满足最小化要求),没有实际意义,也略微增加了表的大小;但减少了把它作为外键的表的大小。3. 外键(Foreign Key):外键的作用是建立关系型数
10、据库中表之间的关系(参照完整性),主键只能从独立的实体迁移到非独立的实体,成为后者的一个属性,被称为外键。4. 索引(Index):利用索引优化系统性能是显而易见的,对所有常用于查询中的 Where子句的列和所有用于排序的列创建索引,可以避免整表扫描或访问, 在不改变表的物理结构的情况下,直接访问特定的数据列,这样减少数据存取时间;禾I用索引可以优化或排除耗时的分类*作;把数据分散到不同的页面 上,就分散了插入的数据;主键自动建立了唯一索引,因此唯一索引也能确 保数据的唯一性(即实体完整性);索引码越小,定位就越直接;新建的索 引效能最好,因此定期更新索引非常必要。索引也有代价:有空间开销,建
11、 立它也要花费时间,在进行Insert、Delete和Update*作时,也有维护代价。 索引有两种:聚族索引和非聚族索引。一个表只能有一个聚族索引,可有多 个非聚族索引。使用聚族索引查询数据要比使用非聚族索引快。在建索引前,应利用数据库系统函数估算索引的大小。5. 锁:锁是并行处理的重要机制,能保持数据并发的一致性,即按事务进行处 理;系统利用锁,保证数据完整性。因此,我们避免不了死锁,但在设计时 可以充分考虑如何避免长事务,减少排它锁时间,减少在事务中与用户的交 互,杜绝让用户控制事务的长短;要避免批量数据同时执行,尤其是耗时并 用到相同的数据表。锁的征用:一个表同时只能有一个排它锁,一个用户用时,其它用户在等待。若用户数增加,贝UServer的性能下降,出现 假死现象。如何避免死锁呢?从页级锁到行级锁,减少了锁征用;给小表增加无效 记录,从页级锁到行级锁没有影响,若在同一页内竞争有影响,可选择合适 的聚族索引把数据分配到不同的页面;创建冗余表;保持事务简短;同一批 处理应该没有网络交互。6. 查询优化规则 尽可能少的行; 避免排序或为尽可能少的行排序,若要做大量数据排序,最好将相关数据 放在临时表中*作;用简单的键(列
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2找春天(教学设计)-2024-2025学年语文二年级下册统编版
- Starter Module 4Unit 3教学设计-2023-2024学年外研版七年级英语上册
- 8 灯光 教学设计 -2024-2025学年语文六年级上册(统编版)
- 九年级体育 走 基本体操教学设计1
- 《五 变废为宝》(教学设计)-2023-2024学年三年级上册综合实践活动粤教版
- 4《试种一粒籽》第一课时 教学设计-2023-2024学年道德与法治二年级下册统编版
- 2017-2018学年北师大版七年级生物下册12.3 激素调节 教学设计
- 2023八年级物理下册 第八章 力与运动第1节 牛顿第一定律 惯性第1课时 牛顿第一定律教学设计 (新版)教科版
- 22《读不完的大书》第一课时 教学设计-2024-2025学年语文三年级上册统编版
- 供水特许经营权协议书5篇
- 2022年广东高考政治真题及答案
- 化学动力学基础(二)课件
- 人工智能+智能运维平台解决方案
- 工会维护劳动领域政治安全10项长效机制
- IATF16949-过程审核检查表-(含审核记录)-
- 10KV供配电系统设计答辩
- 陕西省二级以上医院信息
- 实验室安全检查记录表
- 环境信息系统的GIS基础 01讲 GIS导论
- DCS集散型控制系统安装调试施工方案
- 教学设计 分数的基本性质 全国一等奖
评论
0/150
提交评论