シーケンスがギャップがないことを保証しないことはわかっていますが、ギャップの発生を最小限に抑えたいので、例外的な状況でのみ発生します (できればトランザクションがロールバックする場合のみ)。
RAC に複数のノードがあり、それらが同時にシーケンスにアクセスする可能性があります。
create sequence seq_1 start with 1 order; # this seems to return numbers without gaps, but what will happen when database is restarted? will cached elements be dropped?
create sequence seq_2 start with 1 nocache; # this one also seems to return numbers in order without gaps, but I heard some objections about using nocache as it hinders performance
create sequence seq_3 start with 1 nocache order; # any improvements over previous two?
それで、どちらが良いですか?
別の方法として、シーケンス番号を格納するためにテーブルを使用することもできますが、現在、テーブル ベースではなくシーケンス ベースのソリューションを検討したいと考えています。
ありがとう。