問題タブ [flashback]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - レコードは削除されました。コミットが実行されました。どこからでもその記録を取り戻すことはできますか?
復元されたレコードは、削除された時点で最新の状態になっている必要があります。
oracle - Oracle データベースのフラッシュバック - シャットダウンの中止
何百万もの削除されたレコードをロールバックする長いトランザクションを強制終了した場合、フラッシュバック コマンドを発行する前に DB で SHUTDOWN ABORT を使用するリスクはありますか? データベースはフラッシュバックのために MOUNT 状態である必要があるだけなので、ロールバックが完了するのを待つ代わりに、これを行っても問題はないと思います。
oracle - フラッシュバック クエリの保持時間
過去 4 時間からフラッシュバック クエリを実行できるようにするために、フラッシュバック クエリの保存期間を 240 に設定したいと考えています。
私はこれに似たようなことをしたいと思います:
しかし、フラッシュバック クエリの保持時間の原因となるパラメーターの名前が見つかりませんでした。
database - フラッシュバック、バックアップ、チェックポイント、やり直しログ
フラッシュバック、バックアップ、チェックポイントの適切な説明を見つけるためにインターネットを検索していましたが、違いを理解するのは難しいと思います。
フラッシュバックとバックアップの両方で、データベースを以前の状態に戻すことができます。フラッシュバックは論理的な障害を修正できますが、物理的な障害は修正できません。
やり直しログ - データベースに加えられたすべての変更を保存し、最新のバックアップ以降の変更を適用するために使用します
チェックポイント - データベースを更新すると、物理ファイルはすぐには更新されませんが、パフォーマンスを向上させるためにすべての変更が REDO ログに保存されます。チェックポイントは、これらの変更がデータベースにフラッシュされるポイントです。
私の悪い英語でごめんなさい。誰かがそれらの用語をより詳細に説明できますか?
java - Hibernate の第 2 レベルのキャッシュは、キャッシュを構築するために WHERE 句のみを使用するか、クエリ全体を使用しますか?
シナリオ: 製品 ID の主キーを持つ製品テーブルがあります。読み取り専用戦略でセカンダリ キャッシュ (ehcache) を使用して休止状態をセットアップし、クエリ キャッシュを有効にしました。
オラクルのフラッシュバック機能を使い始めたいという要望があります
質問:
私が知りたいのは、製品テーブルが (フラッシュバック機能を使用して) アーカイブされ、次のように SQL クエリを使用する場合、休止状態でセットアップされたクエリ キャッシュにどのような影響があるかということです。Hibernate はAS OF
、照会されたときに製品エンティティをキャッシュおよび提供する際に、タイムスタンプを認識して考慮に入れますか?:
基本的に問題は、Hibernate キャッシュは純粋にWHERE
句に基づいているのか、それともキャッシュをチェックするときにクエリ全体を考慮しているのかということです。
database - 結合を使用したOracle Flashback Data Archiveのバージョン問合せ?
2 つの時点の間にデータセットで発生したすべての変更のリストを本質的に取得しようとしている状況があります。これは、Oracle の VERSIONS BETWEEN キーワードの非常に良いケースのように思えますが、他のテーブルに効果的に結合して、必要な結果を得る方法がわかりません。
次のテーブルがあるとします。
従業員レコードが変更された場合、従業員レコードが変更されたときの部署名を取得できる必要があります。これは、従業員がまだ同じ部署に属していても、ある時点で部署名が変更されている可能性があるためです。
例: EMP.VERSIONS_STARTSCN EMP_ID EMPLOYEE_NAME DEPT_ID DEPARTMENT 1 1 マイケル 1 サービス 0 1 マイケル 1 営業
データベースが非正規化されていて、テーブル自体に部門名を格納していた場合、これは非常に簡単です。ただし、ルックアップ テーブルを使用すると、直感的ではなくなるようです。
私が試したこと:
これにより、現在の部門が表示されますが、従業員レコードが変更された時点での部門はわかりません。
従業員レコードが変更された時点で存在していた部門のみが実際に必要な場合、各部門が変更された従業員用に複数の行が返されるため、これも良くありません。
内部選択もいくつか試しましたが、Oracle では、内部クエリで VERSIONS_ENDSCN または VERSIONS_STARTTIME を使用することは許可されていないようです。私が試したバリエーションは次のとおりです。
これらのクエリは両方とも、VERSIONS_STARTSCN が宣言されていないというエラーをスローします。
これはかなり一般的な使用例だと思いますが、結合で VERSIONS BETWEEN を使用する例を見つけることができませんでした。私はこれを行う方法を思いつきました.SCN MINVALUE AND MAXVALUEの間の従業員の変更でカーソルを開き、SCNを変数に選択し、empテーブルとDEPT AS OF SCNからネストされたテーブルタイプに変更を選択します、しかし、これはかなり単純に見えることを行うには多くの作業のように思えます. 誰かに何かアイデアがあれば、それは大歓迎です。
現在、v11.2.0.4 を使用しています。