Woot4Moo Asked: 2012-09-27 06:11:45 +0800 CST2012-09-27 06:11:45 +0800 CST 2012-09-27 06:11:45 +0800 CST 大型数据集持久化期间的 Oracle 序列生成性能 772 在 Oracle 序列的上下文中,当持久化超过 2 亿条记录时,如果序列缓存的默认值为 ,数据库的性能是否会受到影响10000?也就是说,1,000,000在将使用 > 2 亿个序列的交易中,将此值修改为附近的值是否会给我带来任何好处? oracle performance 1 个回答 Voted Best Answer Justin Cave 2012-09-27T06:33:35+08:002012-09-27T06:33:35+08:00 序列越大CACHE,当需要生成一组新值时,您需要等待 Oracle 获取锁存器以便能够更新数据字典的次数就越少。通过增加高速缓存的大小,肯定至少有可能获得一些性能优势。另一方面,如果CACHE已经是 10,000,您只需要在 2 亿行数据加载过程中更新数据字典 20,000 次(假设每行调用一次 sequence.nextval)。在不查看您的系统的情况下,这 20,000 次更新似乎不太可能占您花费在 2 亿行数据加载上的时间的有意义的一小部分。通过增加高速缓存的大小,您可能会减少几秒钟的负载,但考虑到您可能花费在 I/O 上的时间,这可能没有意义。
序列越大
CACHE
,当需要生成一组新值时,您需要等待 Oracle 获取锁存器以便能够更新数据字典的次数就越少。通过增加高速缓存的大小,肯定至少有可能获得一些性能优势。另一方面,如果CACHE
已经是 10,000,您只需要在 2 亿行数据加载过程中更新数据字典 20,000 次(假设每行调用一次 sequence.nextval)。在不查看您的系统的情况下,这 20,000 次更新似乎不太可能占您花费在 2 亿行数据加载上的时间的有意义的一小部分。通过增加高速缓存的大小,您可能会减少几秒钟的负载,但考虑到您可能花费在 I/O 上的时间,这可能没有意义。