Sequence的问题

xcrow713 2009-09-11 03:05:04
在oracle中,在insert数据的存储过程中使用
SELECT Sequence.NEXTVAL INTO id FROM dual
会有并发问题么
...全文
273 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
yubin88 2009-09-12
  • 打赏
  • 举报
回复
不会
srt266 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xcrow713 的回复:]
我说的并发是在插入数据的时候,通过Sequence.NEXTVAL 会不会拿到相同的值
[/Quote]

如果可以循环,就有可能拿到相同的值
fuyou001 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 xcrow713 的回复:]
我对oracle不熟,oracle的sequence和SQL的自增长列不同,oracle的sequence是维护在系统表中,所以我担心在读取sequence时候会有脏读
[/Quote]
楼主多滤了
oracle 与sql server锁的机制不一样
Ming_Je_Hui 2009-09-11
  • 打赏
  • 举报
回复
我是个Oracle初学者 以前用的都是sqlserver 2000
感觉Oracle的sequence貌似sqlserver 2000 的自动增长列样的
应该不会出现问题吧 。。。
xcrow713 2009-09-11
  • 打赏
  • 举报
回复
我对oracle不熟,oracle的sequence和SQL的自增长列不同,oracle的sequence是维护在系统表中,所以我担心在读取sequence时候会有脏读
inthirties 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 xcrow713 的回复:]
我知道,我是想知道会不会有并发问题
[/Quote]

首先sequence肯定是同步的

这点都做不到,谈何sequence。
xcrow713 2009-09-11
  • 打赏
  • 举报
回复
我知道,我是想知道会不会有并发问题
inthirties 2009-09-11
  • 打赏
  • 举报
回复
不用cache就性能稍微差点哟,

不过不会跳号。
shiyiwan 2009-09-11
  • 打赏
  • 举报
回复
可以测试下,sequence建立时加nocache。
xcrow713 2009-09-11
  • 打赏
  • 举报
回复
那如果不用cache呢
inthirties 2009-09-11
  • 打赏
  • 举报
回复
Sequence里可以用cache选项,这是一个很好的option

首先sequence肯定是同步的
cache选项,说白点就是一次取多个值cache住,都用完了在去取一批。

所以不会冲号,但是可能跳号

以前我们自己在mysql上写的sequence的机制就是类似oracle的cache的处理的,一次取多个到内存里,都用完了就去数据库取一批过来。自己来控制并发。

是一样的道理
xcrow713 2009-09-11
  • 打赏
  • 举报
回复
我想问的是有没有这个可能性产生并发问题,用缓存的话会造成sequence的不连续,而且如果oracle没有并发防范机制的话,用缓存应该也是一样的。
其实主要问题是SELECT Sequence.NEXTVAL INTO id FROM dual的时候会不会加锁
小灰狼W 2009-09-11
  • 打赏
  • 举报
回复
这不可能
在大多平台上,都有很多操作员同时在处理数据
如果会取到相同的值
问题就严重了..
bai_jiong 2009-09-11
  • 打赏
  • 举报
回复
将sequence作一个缓存,缓存的数据量可以根据(1)sequence的数据区间(2)你的系统的并发量 两者综合考虑,如果没有缓存的话,每次取一个sequence数值时,都要执行一些额外的sql语句来维护sequence的数据字典。这样,如果你的并发量较大的话,可能会引起性能问题。从而导致并发的问题 。
xcrow713 2009-09-11
  • 打赏
  • 举报
回复
我说的并发是在插入数据的时候,通过Sequence.NEXTVAL 会不会拿到相同的值
小灰狼W 2009-09-11
  • 打赏
  • 举报
回复
你担心的并发问题具体是指?
赋值的话你可以直接
insert into tablename values(Sequence.NEXTVAL ...);
执行每一次sequence值自动增加
一般不会有什么并发问题
xcrow713 2009-09-11
  • 打赏
  • 举报
回复
为什么?
小灰狼W 2009-09-11
  • 打赏
  • 举报
回复
不会,放心吧

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧