2016-10-23 19 views
0

私は、1つの列と100,000を超えるレコード(行)を持つテーブルを持っています。 1000人以上のユーザーがテーブルを使用し、テーブルの更新、挿入、削除を行います。行が最後に影響を受けました

Oracleでは、最後に影響を受ける行を特定できますか?

+1

シーケンシャルなid列や、各レコードの作成日のようなものがあれば、これを正確に実行してください。 –

+1

なぜこれをやりたいですか?あなたはこの問題をどのように解決しようとしていますか? – mathguy

+0

1つの列を持つテーブルのポイントは何ですか?これはいくつかの仮説シナリオですか?意味がありません。 – OldProgrammer

答えて

0

ジャーナリングテーブルを作成します。たとえば、table_jnlです。

また、1000人のユーザーが作業するテーブルであるベーステーブルに基づいて(挿入、更新、削除の行の後に)テーブルトリガーを作成します。

各挿入、更新、削除ステートメントのトリガーでは、ジャーナリングテーブルにレコードを作成します。

+1

... 1000人のユーザーは、パフォーマンスの大幅な向上に非常に満足しています。 – mathguy

0

私は今

update demo 
Set id=0 where id=2; 
1 ROW UPDATED 

    ID TS 
---- ----------------------------------------- 
    0 26-OCT-16 09.28.15.000000000 PM 

私は、これは素晴らしい方法ではありません確信しているが、テーブルが作成されている場合、それが動作を更新チェック今

select * from (select id,SCN_TO_TIMESTAMP(ORA_ROWSCN) ts from demo) 
where ts=(select max(SCN_TO_TIMESTAMP(ORA_ROWSCN)) from demo) 


ID TS 
-- ------------------------------------------- 
1 26-OCT-16 09.24.43.000000000 PM 
2 26-OCT-16 09.24.43.000000000 PM 
3 26-OCT-16 09.24.43.000000000 PM 

をチェック答え

create table demo(id number)rowdependencies; 
Table created. 

insert into demo values(1); 
COMMIT; 
insert into demo values(2); 
COMMIT; 
insert into demo values(3); 
COMMIT; 

を得ました行の依存関係を持つ

+0

どのように削除を確認していますか? –

+0

私は削除されたレコードを見つけようとしましたが、動作しませんでしたが、挿入と更新は正常に動作しています....このメソッドは、 –

関連する問題