Oracle序列,改变和查看

时间:2012-12-20 07:57:03

标签: sql oracle sequences

我想更新现有序列的缓存大小,我想在oracle中描述一个序列。怎么做?

增加序列的缓存值有什么缺点

1 个答案:

答案 0 :(得分:2)

Alter sequence seq_name cache 20;

请参阅docs

要获取ddl,您可以使用dbms_metadata包,它可以用于任何对象:

select dbms_metadata.get_ddl('SEQUENCE','SEQ_NAME') from dual;

当您从序列中获取大量内容时,增加缓存大小非常有用。考虑到你使用它们,增加它没有任何缺点。

但是如果你一次生成1个百万个值并且你只使用10个,那么可能不是一个好的想法,因为999990值会丢失。下一个会话将生成另一个1000000值。 我认为引擎可以生成它们并为您的会话分配值。

例如,在我看来,缓存比通常在会话中使用的缓存少10倍。

更新:添加David Aldridge的评论:

  

大型缓存的实用性与速率有关   它一般用于它,因此不仅适用于大型选择而且适用于   具有多个会话的系统全部一次使用一个值。如   后台,小缓存的性能问题是由   在缓存时需要修改SEQ $系统表   累。这是一个小手术,但显然你不想成为   每秒做100次。

因此,增加缓存,您将在同一资源上拥有更少的concurent会话。