oracle 数据库 设计 规范

数据库

1.  先创建逻辑模型,也就是ER图  ,再映射为物理模型。oracle

2. 关于范式, 标准化数据模型通常都不是最终的结果,但他始终是建模最好的起点。性能

键,完整的键,除了键没有其余东西。优化

3. 关于数据类型的选择。.net

因为oracle在数据类型的物理存储上采用很是灵活的方式,所以从存储和性能考虑,使用限制性很强的数据类型或者精度 并无优点。设计

 

指针

选择数据类型时,要注意如下方面:对象

1.大部分状况下,无论你如何限制数据类型,Oracle内部都会使用大范围高精度的浮点方式进行存储,针对于数字和日期。blog

就算你给一个数字指定了精度,这个精度更多的意义在于约束数据或定义文档,而不是为了优化性能。索引

也有例外的状况,就是精度可以减小数据的长度,就会有利于性能的提升。

 

2.固定长度的字符串都会占用一个固定长度的存储空间。 采用固定长度能够下降碎片,可是可能会致使较大的平均行长,致使全表扫描开销加大。

所以,除非你十分肯定字符串的长度是肯定的,好比MAC地址,不然你就应该选择变长字符串类型。

 

3 varchar在11g以后所有用varchar2替代,现阶段 2者是同样的。

 

4. 对于大文件,推荐使用 lob类型。  Blob   二进制, Clob  文本,bfile   外部储存。

 

三 关于人造建:

人造键一般会比天然键带来更好的性能。

他一般由一个数字类型构成。

相比天然键,会减小表链接的开销和索引查询的开销。

 

逻辑模型不要一对一映射到物理模型,逻辑主要考虑功能的实现,物理 主要考虑 性能和储存方式,,这样能够大大节约之后调优的时间。!!

 

四  关于表类型的选择

后谈

 

五  关于null 值

普通索引不要存null,null不会走索引,只能全表扫。

 组合索引 和位图索引能够储存null。

采用null能够下降行的平均长度,从而必定程度上提升全表扫描的性能。

将查询null 更改成查询一个默认值,就是为了走索引。!!

null值的储存须要一个字节的储存空间。

 

六 列的顺序

访问靠后的列,比靠前的列 须要额外消耗少许的CPU资源。 基于此,把常常访问的列放到前面会带来少许的性能提高。

 

七 反规范化

1. 复制列值

主要为了不使用表链接进行查询。

 

 

三  物理方面

物理存储方案

1. 当往表中插入新纪录的时候,oracle须要扫描空闲数据块链表。 ASSM 可以自动的很好的完成 空闲数据快链表 以免 链表争用。针对对插入事务频繁的表。

 

2. 经过合理设置pctfree 来避免行迁移。数据走,留指针。

 

3. 在一个事务更改一个块的时候,会得到事务槽,若是事务槽没法自动增长分配,那么事务将会等待。

 

4,数据压缩,基本都是说的可以提升全表扫描的性能,个人理解是对于范围扫描,也能够提升性能。 字符串的压缩率大于数字类型,对磁盘中数据的压缩收益要大于对内存中数据的压缩。

 

5 关于lob

通常储存超过4000字节的数据,不然用varchar2来储存。 一般状况下,Lob数据不会跟同一行记录的其余列储存在相同的数据块中,只有lob对象不到4000 ,才inline储存。

控制方式: enable/disable storage in row。

若是LOB字段是常常须要访问的字段,那么建议仍是采用inline储存。由于访问外部储存 的lob须要额外的IO。

 

请设置db_securefile参数, 能够将新的lob列的默认储存方式设置为 secure file。

 

6 关于分区

 

分区主要在与2点, 分区消除,便于管理历史分区数据而不影响当前分区。

 

关于设计原则,就是以上内容,转载:http://blog.csdn.net/familyrun/article/details/47037393

 

关于细节规范:

  1. 若是开发过程当中须要创建索引,须要提交书面的更改请求,说明所需索引的定义(名称、字段列表、顺序、索引类型)以及创建的理由。数据库管理员统一维护索引并将提交的请求更改。
  2. 数据库各表的初始数据(包含各代码表、配置表)须要提交给数据库管理员。
  3. 不得使用触发器。
  4. 涉及到数据库多表数据的更改(Insert/Delete/Update)必须使用数据库事务进行控制,而且必须有完整事务开始和提交/回滚机制。不能使用范围事务
  5. 尽可能避免Union操做的使用,须要使用时,请向数据库管理员咨询使用Union操做的影响。
  6. SQL语句和存储过程,尽可能使用PL/SQL Develper的代码美化器美化。
  7. 属于ORACLE的关键字大小,表名、列名等小写。
相关文章
相关标签/搜索