2007年8月7日火曜日

Oracleのシーケンスで結構な飛び番が発生

スズキです。

Oracleで使ってるシーケンスで
結構な飛び番が発生してしまう問題があったので、
その対策として。

原因は"CREATE SEQUENCE"時のCACHEのデフォルト値は20になっており、
その辺で、20付近の飛び番が起こるらしい。
(参考) http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=30577&forum=7

なのでパフォーマンスは悪くなりますが、下記のようにシーケンスを再作成して対応。

--------
CREATE SEQUENCE XXX_ID_SEQ
START WITH 1000 NOCACHE ORDER;
--------

確認は下記SQLより。

--------
SELECT XXX_ID_SEQ.NEXTVAL FROM DUAL
--------

テスト環境では発生しなかったんだけどなー。
Seasar2のコネクションの取得の仕方とかに関係があるのかなー。

--
blog: http://suz-lab.blogspot.com/

0 コメント: