• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:oracle シーケンスの欠番を確認したい)

Oracleシーケンスの欠番確認方法、再起動しても欠番は発生しない理由は?

このQ&Aのポイント
  • Oracleのシーケンスの欠番を確認したいが、再起動しても欠番が発生しない状況に悩んでいます。
  • サービスの再起動やインスタンスの再起動を試しましたが、シーケンスの欠番が確認できませんでした。
  • 通常運用時にデータベースが起因してシーケンスの欠番が発生することを確認したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.2

こんにちわ。 > 元々キャッシュに関してはデフォルトのまま(20)で試してますが、欠番は確認できていません。 > 以前のoracleのバージョンだと欠番されていたが、11gだと起きないものなのでしょうか? Sequence から採番した時に、SGA (Shared Pool) にCache されるので、 事前に「select seq1.nextval from dual;」とか行って、アクセスしておかないと Cache されません。 11g (11.2.0.3) で最近確認しましたが、Shared Pool をFlush しただけで普通に 欠番が発生していました。 書き忘れましたが、RAC 環境だったりすると、1Node を再起動しても、もう1Node が 情報を持ってたりするらしく、欠番は発生しませんでした。

その他の回答 (1)

  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.1

こんにちわ。 > なぜ起きないのでしょうか。 Sequence がCache されていないのだと思います。 Default では、Cache されるので SQL> Create sequence seq1; SQL> select seq1.nextval from dual; としてから、インスタンスを再起動してみて下さい。

narukami521
質問者

お礼

返答ありがとうございます。 元々キャッシュに関してはデフォルトのまま(20)で試してますが、欠番は確認できていません。 以前のoracleのバージョンだと欠番されていたが、11gだと起きないものなのでしょうか?