表结构、序列等注意事项
序列确认是否需要加上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)
表名、表字段等都要有注释。有数据字典的要写详细
分享到:
相关推荐
- **注意事项**: 在部署流程定义时避免将非流程相关的文件一同部署到此表中,以免造成不必要的错误。 2. **ACT_GE_PROPERTY(系统相关属性)** - **用途**: 存储与流程引擎相关的属性信息,如版本号等。 3. **...
3. **注意事项**: - 弹性域虽然方便,但可能会增加数据库管理的复杂度,因此在使用时需谨慎考虑。 - 应确保对弹性域的使用符合企业的数据管理和安全政策。 #### 六、总结 Oracle 11i 表结构的设计不仅影响着...
- **注意事项**:部署流程定义时,避免将SVN等隐藏文件或其他无关文件部署到该表中,以免引起错误或导致流程定义无法删除。 ##### 2. 属性数据表 (act_ge_property) - **简要描述**:存储整个流程引擎级别的数据,...
- **注意事项**: 部署时避免将 SVN 等非流程相关的文件放入该表中,以免引起错误或导致流程定义无法正常删除。 **1.2 表结构说明** - **ID**: 唯一标识。 - **REV**: 版本号。 - **NAME**: 文件名称。 - **...
#### 四、注意事项 1. **依赖关系**:在删除数据库对象时,需要注意对象之间的依赖关系。例如,如果存在依赖于某个表的存储过程,在删除表之前应该先删除这些存储过程。 2. **权限问题**:确保当前用户拥有足够的...
#### 注意事项 - 在实际应用中,可能还需要考虑并发问题,因为多个用户同时调用该存储过程可能会导致序列值重复或跳过。 - 可以考虑使用事务和锁定机制来确保数据的一致性和准确性。 - 另外,为了提高性能,可以考虑...
以下是一些关于ABAP报表性能优化的注意事项和技巧: 1. **表连接策略**: - **连接顺序**:在编写报表时,确保将拥有最有效查询条件的表放在连接的第一位。例如,对于订单状态统计报表,如果主要查询条件是订单...
文档编写是IT行业中不可或缺的一部分,无论是技术手册、项目报告还是...以上就是关于“文档编写注意事项文档格式标准规范”的详细解析,遵循这些技巧将有助于创建出专业、易读且结构清晰的文档,提升IT行业的工作质量。
- 检查表结构、索引、视图、触发器等其他数据库对象,确保它们能在MySQL中正确创建和工作。 - 数据类型兼容性和大小限制需要仔细检查,因为不同数据库系统有不同的限制。 - 考虑性能和并发性,MySQL可能需要调整...
5. **注意事项**: - 自动化生成的代码可能需要根据实际需求进行调整,例如添加注解(如JPA的@Entity、@Table等)、自定义序列化/反序列化逻辑、校验规则等。 - 转换过程中应考虑到数据库的复杂性,如外键、触发器...
4. **元数据管理**:维护数据库的元信息,如表结构、索引等,确保数据操作的正确性。 5. **客户端接口**:提供RESTful API和SDK,便于用户应用程序与TSDB交互。 **四、应用场景** 1. **监控系统**:收集和分析...
PgSQL 到 MySQL 数据库迁移步骤和注意事项 数据库迁移是数据库管理中最重要的一步骤,PgSQL 到 MySQL 数据库迁移是一种常见的迁移方式。本文档将详细介绍PgSQL 到 MySQL 数据库迁移的步骤和注意事项。 Step 1: ...
树结构是数据库、操作系统、网络协议等领域中用于表示层次关系的重要数据结构。 布尔代数(Boolean Algebras)部分包括组合逻辑电路(Combinatorial Circuits)、布尔函数(Boolean Functions)以及应用。布尔代数...
- **注意事项**:选择合适的数据结构可以显著提高算法效率。 - **算法**:解决问题的具体步骤。 - **应用场景**:几乎所有计算机科学领域。 - **注意事项**:选择合适的算法可以优化程序性能。 2. **给出二叉树...
**注意事项**: - 在使用psi-cd-hit时,确保输入序列格式正确,通常是FASTA或FASTQ格式。 - 根据数据量和计算资源,合理设置参数以平衡聚类精度和计算效率。 - 结果解释时,要考虑到聚类的阈值可能影响到结果的生物...
- **手动修改**:适用于小型数据库或简单结构,涉及表结构和数据的逐项调整,工作量大,对开发人员要求高。 - **工具迁移**:如使用Sql Developer,能自动化处理大部分转换工作,通常包括迁移前准备、操作步骤、...
在Java程序设计方面,面试通常涉及基本概念,如编程风格、语句理解(如i++)、类型转换、程序结构等。深入理解异常处理和反射机制也是重要考察点,反射允许程序在运行时动态访问和修改类的信息。此外,理解Java中的...
5. **栈操作的注意事项** 进行入栈操作时应先判断栈是否已满;进行出栈操作时应先判断栈是否为空;当栈中元素数量达到n时,再次进行入栈操作发生上溢,则说明该栈的最大容量为n。为了增加内存空间的利用率和减少...
当创建或修改表结构时,需要确保字段的类型与序列产生的数值类型匹配,例如,如果序列产生的是整数,则字段应为INT类型。创建表时,可以先预留出自动增加的字段,如: ```sql CREATE TABLE my_table ( id INT ...