2017-09-16 6 views
0

クライアントには名前以外の2つのテーブルがあり、T1とT2と呼びます。同義語実行時のOracleの切り替え

一部のバッチ処理はT2で動作しますが、同義語TNはT1を指します。

バッチが完了すると、同義語TNがT2テーブルを指して置き換えられます。 このスイッチは、1日に1回前後に行われます。

私の質問は以下のとおりです。

1)t2だけ同義語tを作成したり、交換した場合。 t1の代わりにt2を指すようにTNを切り替え、TNにアクセスするOracleへの同時クエリがsqlまたはstoredprocのいずれかを使用し続けると、クエリの切り替え時に失敗する可能性があります。

答えて

0

ブロック引用 スイッチの切り替え時にクエリが失敗する可能性があります。 ブロック引用

一般に、シノニムオブジェクトの検索は、解析時に行われます。 「置換」の前に行われたクエリは引き続きT1に移動し、その後にクエリはT2に移動します。変更

後だけがあるかもしれません、あなたはまた、同義語

を置き換えることができることを確認し、同義語を「交換」するためのルールは、それらが無効化された場合があるとき また、シノニムを使用した手順は、自動的にコンパイル「すべきです」あなたの要求に合わせてデザインを改善する

+0

提案したようにこの問題を解決できる改善されたデザインを提案できますか? – Maths

+0

あなたがしていることとバッチで何が起こっているかについてもっと教えてください。 T1とT2はテーブル/マテリアライズド・ビュー/等ですか? –

関連する問題