大規模な Oracle 本番データベース (10g) で毎日作業していると、次のような操作に気付きました。
- テーブルに対する読み取り権限をユーザーに付与する
- テーブルにトリガーを作成する
そのテーブルをロックし、それを主張しているすべてのカーソルを無効にします。
テーブルが大きく (> 2000 万行)、多くのユーザーが作業している場合、これは非常に大きな結果をもたらします。
私の質問は次のとおりです。なぜ Oracle はテーブルをロックしているのですか (結局、構造を変更するのではなく、ユーザーに読み取り権限を与えるだけです)、なぜカーソルを無効にする必要があるのですか?
それらのようなアクションを「よりソフト」にする方法はありますか?
前もって感謝します。
別の質問: 無効化がそのオブジェクトに与える影響を最小限に抑えるために、特定のテーブルで開いているカーソルの数を知る方法はありますか?