sql >> データベース >  >> RDS >> Oracle

HibernateOracleシーケンスは大きなギャップを生成します

    問題は、シーケンスジェネレーターが実際にはシーケンスジェネレーターではなく、デフォルトの割り当てサイズが50のシーケンスhiloジェネレーターであるという事実に起因すると思います。ドキュメントに示されているように:http://docs.jboss.org/ hibernate / stable / annotations / reference / en / html_single /#entity-mapping-identifier

    これは、シーケンス値が5000の場合、次に生成される値は5000 * 50 =250000になることを意味します。シーケンスのキャッシュ値を式に追加すると、初期ギャップが大きくなる可能性があります。

    シーケンスの値を確認してください。最後に生成された識別子よりも小さい必要があります。シーケンスをこの最後に生成された値+1に再初期化しないように注意してください。生成された値は指数関数的に増加します(この問題が発生し、オーバーフローのために負の整数IDが発生しました)



    1. レコードが存在するかどうかを判断する最速の方法

    2. 供給と需要のマッチング—ソリューション、パート1

    3. PostgreSQLインストールのバイナリ形式で書き込み可能なmongo_fdw拡張機能をコンパイルします。

    4. 参加の排除:SQLServerが不要なテーブルを削除する場合