Oracle数据库设计要做到五戒
2008-12-12 13:01:52 来源:WEB开发网众所周知,数据库设计的好坏直接关系到数据库运行的效率。根据笔者的经验,对于提升数据库性能来说,合理的数据库设计,比升级服务器的硬件配置,还要来的有效。但是,笔者无论是在跟同事合作,又或者是在论坛上跟相关同行交流的时候,总是会发现有些人有一些不好的数据库设计习惯,影响了数据库的性能,增加了数据库管理员的工作量。
笔者认为,为了提升数据库的性能,在Oracle数据库设计的时候,要做到五戒。
一戒:在小型表上不要建立索引。
毋庸置疑,索引可以提高数据库查询的效率。但是,俗话说,过之则不及。索引也必须用在合时的地方。如果索引设置不当,不但不会提升数据库的性能,反而会起到相反的作用。如在小型数据库上设置索引,而且这些表用户更改的比较频繁。如员工基本信息表,就是简单的不超过十个字段。这个表用户需要经常的进行插入与删除操作。当进行这些变更作业的时候,需要对索引进行维护。而这个维护的工作量可能比扫描表空间消耗更多的存储空间。从而不但起步到改善数据库性能的作用,反而是在拖后腿。
所以,在数据库设计的时候,要做到的第一个戒条就是,不要再用户经常更改的小型表上建立索引。否则的话,是得不偿失的。
二戒:不要用用户的键。
如我们在设计一个ERP系统数据库的时候,有一张销售订单表。在这张表中,有一个销售订单号。那么我们能否利用这个单号作为关联其他表的外键呢?如在销售出货单上,需要关联到销售订单。这个时候,我们能否把销售订单单号作为跟出货单关联的关键字呢?
答案是可以的,但是不是最优选择。我们可以看一下ERP的后台数据库。在销售订单表上,除了销售订单号这个唯一表示销售订单纪录的字段外,还有一个字段就是销售订单ID。在前台的出货单界面上虽然显示的是销售订单号码,但是,在后台却存储着的是销售订单ID。也就是说,数据库不是以用户的键作为主键,而是采用了数据库自动维护的单据ID这个字段。
- ››oracle 恢复误删除的表和误更新的表
- ››Oracle分页查询排序数据重复问题
- ››Oracle创建dblink报错:ORA-01017、ORA-02063解决
- ››Oracle 提高SQL执行效率的方法
- ››Oracle 动态查询,EXECUTE IMMEDIATE select into...
- ››Oracle 11g必须开启的服务及服务详细介绍
- ››oracle性能34条优化技巧
- ››oracle数据库生成随机数的函数
- ››Oracle 数据库表空间容量调整脚本
- ››oracle单库彻底删除干净的方法
- ››Oracle创建表空间、创建用户以及授权、查看权限
- ››oracle 中 UPDATE nowait 的使用方法
更多精彩
赞助商链接