oracle sequence nextval,SOS!!! Sequence.nextval 的问题
本帖最后由 syeung_001 于 2013-7-18 14:42 编辑
环境:CentOS 5.8 + Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi 物理内存:8G
SGA: MAX_SGA_SIZE=6G DB_CACHE_SIZE=4G shared_pool_size=900m large_pool_size=256m
一个实例下有三个用户(三个库,库结构:存储过程完全一样): ERP_A; ERP_B; ERP_C
写入数据的存储过程如下:
CREATE OR REPLACE PROCEDURE SP_INSERTCURRENCY
(CURR_CODE CHAR, CURR_NAME CHAR, EXCH_RATE NUMBER, TDATE DATE, CURRENCY_RKEY IN OUT NUMBER )
AS
BEGIN
INSERT INTO CURRENCY(RKEY,CURR_CODE, CURR_NAME, EXCH_RATE,TDATE)
VALUES (SEQ_CURRENCY.NEXTVAL,CURR_CODE, CURR_NAME, EXCH_RATE,TDATE);
SELECT SEQ_CURRENCY.CURRVAL INTO CURRENCY_RKEY FROM DUAL;
END;
/
Sequence SEQ_CURRENCY如下:
CREATE SEQUENCE SEQ_CURRENCY START WITH 201 CACHE 20;
问题点:
数据库运行一段时间后(大概15天) 。外部程序调用存储过程: SP_INSERTCURRENCY,执行数据插入时.有时获取sequnce.nextval不准(本例的sequence是SEQ_CURRENCY.NEXTVA),在存储过程中获取的SEQ_CURRENCY.NEXTVAL = 18. (数据表=18的记录是存在的),实际上当前值如下:
Select SEQUENCE_NAME,LAST_NUMBER from user_sequences where SEQUENCE_NAME=’SEQ_CURRENCY’
SEQUENCE_NAME LAST_NUMBER
--------------------------------------------------
SEQ_CURRENCY 201
打开一个sql/plus窗口,获取sequence也是正确的:
SQL>select SEQ_CURRENCY.NEXTVAL from dual; (值为201,正确的)
再回外部程序调用存储过程 SP_INSERTCURRENCY,获取的值还是18。真是见鬼了.
注: 清洗共享池 Alter system flush shared_pool后。外部程序调用存储过程又能正常获取nextval值了。 但一段时间后又出错了(获取sequence.nextval值错误)。
将shared_pool_size由 900m修改为 512m。一段时间后同样问题还是出现。
系统有很多类似这样的sequence。都是外部程序调用,一段时间后就出现问题
oracle sequence nextval,SOS!!! Sequence.nextval 的问题相关推荐
- Oracle中序列(Sequence)详解
Oracle中序列(Sequence)详解 一 序列定义 序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字).不占用磁盘空间,占用内存. 其主要用 ...
- oracle函数胡书写,Oracle中序列表sequence的使用.docx
Oracle中序列表sequence的使用 在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按 序列号排序的地方. 1. create sequence 你首先 ...
- oracle修改seq为order,Oracle 创建和修改sequence
Oracle 创建和修改sequence 在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方. 1.Create Sequence 你首先要有 ...
- sqlplus 主键 设置_浅谈MyBatis-Plus学习之Oracle的主键Sequence设置
一.Oracle的主键Sequence设置简介 在Oracle数据库中不支持主键自增策略,它是通过Sequence序列来进行完成的,因此需要在MP中进行相关配置 二.相关配置如下 2.1.pom.xm ...
- oracle sequence 应用,oracle应用之使用sequence批量写数据
本博客是对之前写的博客Oracle批量新增更新数据的补充,oracle的知识真是多,其实要学精任何一门知识都是要花大量时间的,正所谓: 学如逆水行舟,不进则退 先介绍oracle sequence的一 ...
- Oracle sql创建序列sequence
知道的创建表序列的用途是当建立表的时候,Oracle不像Mysql一样会有自动主键增长AUTO_INCREMENT,所有如果需要主键自动增长的效果,Oracle提供了序列sequence方式. 创建序 ...
- (转)oracle中的CURRVAL和NEXTVAL用法
转自:http://blog.csdn.net/qianyiyiding/article/details/51592689 1.什么是sequence?其作用是什么? 在Oracle数据库中,什么是序 ...
- oracle sequences优化_性能优化-Oracle RAC中的Sequence Cache问题
性能优化-Oracle RAC中的Sequence Cache问题 enq: SQ - contention 在RAC情况下,可以将使用频繁的序列Cache值增加到10000,或者更高到50000,这 ...
- mysql sequence java_MySQL增加Sequence管理功能
项目应用中,曾有以下一个场景: 接口中要求发送一个int类型的流水号,由于多线程模式,如果用时间戳,可能会有重复的情况(当然概率很小). 所以想到了利用一个独立的自增的sequence来解决该问题. ...
- AVC sequence header AAC sequence header
推送H.264和AAC的重要前提 RTMP的音视频流的封装形式和FLV格式相似, 流媒体服务器向客户端发送包含H264和AAC的RTMP直播流,需要首先发送: AVC sequence header ...
最新文章
- hive replace替换多个_详解Mysql数据库中replace与replace into的用法及区别
- 欠采样的基本概念和现象
- 实时计算Flink——产品安全
- mysql 分时统计_mysql中数据统计的技巧备忘录
- java feign同时传对象和其他参数_关于Spirng Cloud的Feign传参问题:
- 华为平板matepad支持鸿蒙2.0,首款鸿蒙OS 2.0平板,华为正式公布Matepad Pro2,搭载麒麟9000...
- .NET开发Windows Service程序 - Topshelf
- sparkshelljarlib_Spark应用程序第三方jar文件依赖解决方案
- java long.max_value,Long + Long不大于Long.MAX_VALUE
- 公司绝不会告诉你的20大秘密
- 微软TechEd 2006亲历(一):交流的价值
- 如果你是加勒比海盗首领,会选择哪种算法来使价值最大化?
- 良好的代码风格之if else?
- jdk Collections类
- key-list类型内存数据引擎介绍及使用场景
- mysql的dml全程是_MySQL中的DML、DDL、DCL到底是什么呢?
- 成长就是不断升级自己的认知
- 西门子杯大赛比赛总结与体会
- 文本识别综述 <软件学报_王建新等、中国图象图形学报_刘崇宇等>
- sinc函数卷积_从采样点到声音:sinc函数和卷积