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

OracleSEQUENCE-'インクリメント'および'キャッシュ'

    ない。 INCREMENTBYとCACHEの間に関係はありません。

    INCREMENT BYは、シーケンスの単調な側面を制御します。 INCREMENT BY 50を使用すると、シリーズは1, 51, 101, 151になります。 など。

    CACHEは、NEXTVAL要求を処理するためにメモリに保持されるシーケンス番号の数を制御します。 CACHE番号が小さいほど、データベースが次の割り当て範囲を取得するために内部テーブルから読み取る必要がある頻度が高くなります。したがって、適度にビジーなシステムでは、取得するラッチの数を最小限に抑えたいので、CACHEを1000などの高い数値に設定します。

    人々は、CACHE値を設定することにこだわっています。なぜなら、それが高すぎると、いくつかの値を「失い」、シリーズにギャップが生じる可能性があるからです。これが発生する可能性は非常に低く、発生したとしても気にする必要はありません。シーケンスは、保証された一意の値のソースであり、それ以上の意味はありません。

    ただし、質問を読み直しても、バルクインサートのパフォーマンスに影響はないと思います。なぜシーケンス割り当てに焦点を当てることを選んだのですか?ボトルネックがどこにあるかを発見するためにトレースを実行しましたか? DBAと話しましたか?




    1. 複数の行を挿入すると、重複はどうなりますか?

    2. 実行プランオペレーターのタイミングを理解する

    3. PostgreSQL13でのUnicode正規化

    4. Sphinx Search/MySQLは最も一般的な単語を検索します