本帖最后由 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 的问题相关推荐

  1. Oracle中序列(Sequence)详解

    Oracle中序列(Sequence)详解 一 序列定义 序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字).不占用磁盘空间,占用内存. 其主要用 ...

  2. oracle函数胡书写,Oracle中序列表sequence的使用.docx

    Oracle中序列表sequence的使用 在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按 序列号排序的地方. 1. create sequence 你首先 ...

  3. oracle修改seq为order,Oracle 创建和修改sequence

    Oracle  创建和修改sequence 在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方. 1.Create Sequence 你首先要有 ...

  4. sqlplus 主键 设置_浅谈MyBatis-Plus学习之Oracle的主键Sequence设置

    一.Oracle的主键Sequence设置简介 在Oracle数据库中不支持主键自增策略,它是通过Sequence序列来进行完成的,因此需要在MP中进行相关配置 二.相关配置如下 2.1.pom.xm ...

  5. oracle sequence 应用,oracle应用之使用sequence批量写数据

    本博客是对之前写的博客Oracle批量新增更新数据的补充,oracle的知识真是多,其实要学精任何一门知识都是要花大量时间的,正所谓: 学如逆水行舟,不进则退 先介绍oracle sequence的一 ...

  6. Oracle sql创建序列sequence

    知道的创建表序列的用途是当建立表的时候,Oracle不像Mysql一样会有自动主键增长AUTO_INCREMENT,所有如果需要主键自动增长的效果,Oracle提供了序列sequence方式. 创建序 ...

  7. (转)oracle中的CURRVAL和NEXTVAL用法

    转自:http://blog.csdn.net/qianyiyiding/article/details/51592689 1.什么是sequence?其作用是什么? 在Oracle数据库中,什么是序 ...

  8. oracle sequences优化_性能优化-Oracle RAC中的Sequence Cache问题

    性能优化-Oracle RAC中的Sequence Cache问题 enq: SQ - contention 在RAC情况下,可以将使用频繁的序列Cache值增加到10000,或者更高到50000,这 ...

  9. mysql sequence java_MySQL增加Sequence管理功能

    项目应用中,曾有以下一个场景: 接口中要求发送一个int类型的流水号,由于多线程模式,如果用时间戳,可能会有重复的情况(当然概率很小). 所以想到了利用一个独立的自增的sequence来解决该问题. ...

  10. AVC sequence header AAC sequence header

    推送H.264和AAC的重要前提 RTMP的音视频流的封装形式和FLV格式相似, 流媒体服务器向客户端发送包含H264和AAC的RTMP直播流,需要首先发送: AVC sequence header ...

最新文章

  1. hive replace替换多个_详解Mysql数据库中replace与replace into的用法及区别
  2. 欠采样的基本概念和现象
  3. 实时计算Flink——产品安全
  4. mysql 分时统计_mysql中数据统计的技巧备忘录
  5. java feign同时传对象和其他参数_关于Spirng Cloud的Feign传参问题:
  6. 华为平板matepad支持鸿蒙2.0,首款鸿蒙OS 2.0平板,华为正式公布Matepad Pro2,搭载麒麟9000...
  7. .NET开发Windows Service程序 - Topshelf
  8. sparkshelljarlib_Spark应用程序第三方jar文件依赖解决方案
  9. java long.max_value,Long + Long不大于Long.MAX_VALUE
  10. 公司绝不会告诉你的20大秘密
  11. 微软TechEd 2006亲历(一):交流的价值
  12. 如果你是加勒比海盗首领,会选择哪种算法来使价值最大化?
  13. 良好的代码风格之if else?
  14. jdk Collections类
  15. key-list类型内存数据引擎介绍及使用场景
  16. mysql的dml全程是_MySQL中的DML、DDL、DCL到底是什么呢?
  17. 成长就是不断升级自己的认知
  18. 西门子杯大赛比赛总结与体会
  19. 文本识别综述 <软件学报_王建新等、中国图象图形学报_刘崇宇等>
  20. sinc函数卷积_从采样点到声音:sinc函数和卷积

热门文章

  1. ie11安装程序无法继续 因为你的计算机,ie11无法安装解决方法详解
  2. U盘文件系统格式快速转换
  3. 软件开发技术文档的编写模块
  4. 胧月初音未来计算机,胧月(流星P所作歌曲《胧月》)_百度百科
  5. angularUI之accordion的用法
  6. 东南部海域有7、8级大风 华北平原大气扩散条件转差
  7. 智能优化算法学习总结
  8. SpringBoot实现抽奖大转盘
  9. Kotlin StandardKt
  10. Python爬取最新反爬虫汽车之家口碑