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

postgresqlのtxid_current()のエポックの意味は何ですか?

    エポックは、txid_current()がラップアラウンドしてゼロから始まるのを防ぐために使用されます(または、値0,1,2が内部で再使用されるため、正確には3から始まります)。

    したがって、これは簡単に機能します:

    Postgresには、txid_current()によって返される値とは異なる内部32ビットxidカウンターがあります。内部xidはラップアラウンドし、ラップアラウンドごとにカウントをリセットします。

    一方、txid_current()は64ビット(bigint)を返します。この場合、上位ビットはエポック増分であり、xidラップアラウンドごとに1回発生し、ゼロから開始しません。

    したがって、すべてのラップアラウンドでエポックが開始され、txid_current()の上位ビットが変更されて、txidがリセットされないようになります。代わりに、64ビットの制限に達するまでtxidが増加し続けます(私たち全員が死んだ後、非常に遠い将来になることもあります)。




    1. OracleBLOBからbase64CLOBへ

    2. ファイルまたはアセンブリを読み込めませんでした'本番データベースにアプリケーションをデプロイするときにSystem.Dataエラーが発生しました

    3. ストアドプロシージャのSqlParameterでDateTimeを使用すると、フォーマットエラーが発生します

    4. 正規表現によるmysqlの更新