`

表结构、序列等注意事项

阅读更多
表结构、序列等注意事项

序列确认是否需要加上cache,作为主键应该nocycle.
关于cache与nocache区别 参考http://blog.csdn.net/duanning397/article/details/7670302
引用

Oracle在创建序列(sequence)时有个参数你可以选择cache或者nocache,下面来讲一下两者的区别:
先来看下创建sequence的语句:
create sequence SEQ_ID 
minvalue 1 
maxvalue 99999999 
start with 1 
increment by 1 
cache n  / nocache  --其中n代表一个整数,默认值为20
order;
如果指定CACHE值,Oracle就可以预先在内存里面放置一些Sequence,这样存取的快些。cache里面的取完后,Oracle自动再取一组到cache。使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的Sequence就会丢失。举个例子:比如你的sequence中cache 100,那当你sequence取到90时突然断电,那么在你重启数据库后,sequence的值将从101开始。
如果指定NOCACHE值,Oracle就不会预先在内存里面存放Sequence,当然这也就可以避免数据库不正常down掉的sequence丢失。不过会产生一些问题:创建nocache   sequence在高并发访问时,容易导致row cache lock等待事件,主要原因是每次获取nextval时都需要修改rowcache中的字典信息。使用nocache  sequence,还会导致如下问题:
由于每次修改字典信息都需要commit,可能导致log file sync等待,nocache sequence在RAC环境下,会对基于sequence生成的列创建的索引造成实例间大量索引块争用
基于以上问题,避免创建nocache sequence。
再来看看sequence相关保护机制:
row cache lock:在调用sequence.nextval情况下需要修改数据字典时发生,对应row cache lock事件
SQ lock:在内存缓存(并非rowcache)上获取sequence.nextval时发生,对应enq:SQ-contention事件
SV lock:RAC环境下获取cache+order属性的sequence.nextval时发生,对应DFS lock handle事件
什么情况下使用cache什么时间上使用nocache?
我个人感觉应该尽量使用cache,因为现在的数据库很多都是在高并发的情况下运行的,首先这样可以搞性能,并且也不会产生row cache lock等待事件。可能有些人会担心数据库不正常的down掉会产生序列号间断,但这也是很少的情况。当然如果你的业务要求是绝不能产生间断的序列号,那就要使用nochache了。



对于nochache的具体使用和实验可以关注:http://space.itpub.net/18922393/viewspace-712354



数字统一用number类型
number(p, s) 声明一个定点数 p(precision)为精度,s(scale)表示小数点右边的数字个数,精度最大值为38,scale的取值范围为-84到127
小数点和负号不计入有效位数
number(p) 声明一个整数 相当于Number(p, 0)

表名、表字段等都要有注释。有数据字典的要写详细
分享到:
评论

相关推荐

    Activiti工作流数据库表结构说明

    - **注意事项**: 在部署流程定义时避免将非流程相关的文件一同部署到此表中,以免造成不必要的错误。 2. **ACT_GE_PROPERTY(系统相关属性)** - **用途**: 存储与流程引擎相关的属性信息,如版本号等。 3. **...

    Oracle 11i 表结构

    3. **注意事项**: - 弹性域虽然方便,但可能会增加数据库管理的复杂度,因此在使用时需谨慎考虑。 - 应确保对弹性域的使用符合企业的数据管理和安全政策。 #### 六、总结 Oracle 11i 表结构的设计不仅影响着...

    activiti表结构说明.docx

    - **注意事项**:部署流程定义时,避免将SVN等隐藏文件或其他无关文件部署到该表中,以免引起错误或导致流程定义无法删除。 ##### 2. 属性数据表 (act_ge_property) - **简要描述**:存储整个流程引擎级别的数据,...

    activiti表结构

    - **注意事项**: 部署时避免将 SVN 等非流程相关的文件放入该表中,以免引起错误或导致流程定义无法正常删除。 **1.2 表结构说明** - **ID**: 唯一标识。 - **REV**: 版本号。 - **NAME**: 文件名称。 - **...

    Oracle 删除所有表,视图,序列,函数,存储过程等SQL

    #### 四、注意事项 1. **依赖关系**:在删除数据库对象时,需要注意对象之间的依赖关系。例如,如果存在依赖于某个表的存储过程,在删除表之前应该先删除这些存储过程。 2. **权限问题**:确保当前用户拥有足够的...

    sqlserver中创建类似oracle序列的存储过程

    #### 注意事项 - 在实际应用中,可能还需要考虑并发问题,因为多个用户同时调用该存储过程可能会导致序列值重复或跳过。 - 可以考虑使用事务和锁定机制来确保数据的一致性和准确性。 - 另外,为了提高性能,可以考虑...

    ABAP报表性能优化注意事项

    以下是一些关于ABAP报表性能优化的注意事项和技巧: 1. **表连接策略**: - **连接顺序**:在编写报表时,确保将拥有最有效查询条件的表放在连接的第一位。例如,对于订单状态统计报表,如果主要查询条件是订单...

    文档编写注意事项文档格式标准规范.doc

    文档编写是IT行业中不可或缺的一部分,无论是技术手册、项目报告还是...以上就是关于“文档编写注意事项文档格式标准规范”的详细解析,遵循这些技巧将有助于创建出专业、易读且结构清晰的文档,提升IT行业的工作质量。

    Oracle到mysql的迁移步骤及各种注意事项_数据库.docx

    - 检查表结构、索引、视图、触发器等其他数据库对象,确保它们能在MySQL中正确创建和工作。 - 数据类型兼容性和大小限制需要仔细检查,因为不同数据库系统有不同的限制。 - 考虑性能和并发性,MySQL可能需要调整...

    数据库表转实体类和DTO

    5. **注意事项**: - 自动化生成的代码可能需要根据实际需求进行调整,例如添加注解(如JPA的@Entity、@Table等)、自定义序列化/反序列化逻辑、校验规则等。 - 转换过程中应考虑到数据库的复杂性,如外键、触发器...

    1981-2023中国投入产出表数据

    压缩包内的文件 "说明.txt" 可能包含了数据的详细解释、格式说明、计算方法以及使用注意事项等内容,对于正确理解和利用这些数据至关重要。而 "8892.zip" 文件可能是原始的或经过处理的投入产出表数据,可能以CSV、...

    阿里云 专有云企业版 V3.8.0 高性能时间序列数据库TSDB 产品简介 20190621.pdf

    4. **元数据管理**:维护数据库的元信息,如表结构、索引等,确保数据操作的正确性。 5. **客户端接口**:提供RESTful API和SDK,便于用户应用程序与TSDB交互。 **四、应用场景** 1. **监控系统**:收集和分析...

    pgsql数据库转mysql数据库步骤及注意.docx

    PgSQL 到 MySQL 数据库迁移步骤和注意事项 数据库迁移是数据库管理中最重要的一步骤,PgSQL 到 MySQL 数据库迁移是一种常见的迁移方式。本文档将详细介绍PgSQL 到 MySQL 数据库迁移的步骤和注意事项。 Step 1: ...

    关于离散数学的注意事项Notes on Discrete Mathematics

    树结构是数据库、操作系统、网络协议等领域中用于表示层次关系的重要数据结构。 布尔代数(Boolean Algebras)部分包括组合逻辑电路(Combinatorial Circuits)、布尔函数(Boolean Functions)以及应用。布尔代数...

    东南大学19年计算机考研历年真题.pdf

    - **注意事项**:选择合适的数据结构可以显著提高算法效率。 - **算法**:解决问题的具体步骤。 - **应用场景**:几乎所有计算机科学领域。 - **注意事项**:选择合适的算法可以优化程序性能。 2. **给出二叉树...

    psi-cd-hit脚本

    **注意事项**: - 在使用psi-cd-hit时,确保输入序列格式正确,通常是FASTA或FASTQ格式。 - 根据数据量和计算资源,合理设置参数以平衡聚类精度和计算效率。 - 结果解释时,要考虑到聚类的阈值可能影响到结果的生物...

    Mysql迁移到Oracle一些需要注意的事项和方案

    - **手动修改**:适用于小型数据库或简单结构,涉及表结构和数据的逐项调整,工作量大,对开发人员要求高。 - **工具迁移**:如使用Sql Developer,能自动化处理大部分转换工作,通常包括迁移前准备、操作步骤、...

    数据结构栈和队列试题及答案

    5. **栈操作的注意事项** 进行入栈操作时应先判断栈是否已满;进行出栈操作时应先判断栈是否为空;当栈中元素数量达到n时,再次进行入栈操作发生上溢,则说明该栈的最大容量为n。为了增加内存空间的利用率和减少...

    java程序员应职面试注意事项..pdf,这是一份不错的文件

    在技术问题方面,面试官通常会考察应聘者对Java语言的深入理解,包括基本概念如编程风格、语句理解(例如i++)、类型转换、程序结构等。异常处理和反射机制的理解也是重要的考察点,因为它们是Java语言高级特性的...

Global site tag (gtag.js) - Google Analytics