- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:oracle シーケンスの欠番を確認したい)
Oracleシーケンスの欠番確認方法、再起動しても欠番は発生しない理由は?
このQ&Aのポイント
- Oracleのシーケンスの欠番を確認したいが、再起動しても欠番が発生しない状況に悩んでいます。
- サービスの再起動やインスタンスの再起動を試しましたが、シーケンスの欠番が確認できませんでした。
- 通常運用時にデータベースが起因してシーケンスの欠番が発生することを確認したいです。
- みんなの回答 (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; としてから、インスタンスを再起動してみて下さい。
お礼
返答ありがとうございます。 元々キャッシュに関してはデフォルトのまま(20)で試してますが、欠番は確認できていません。 以前のoracleのバージョンだと欠番されていたが、11gだと起きないものなのでしょうか?