私は毎秒実行しているT_USERテーブルを更新しているOracleジョブを持っています。ジョブの実行中にテーブルがブロックされていて、Webのような他のプロセスがあるかどうか疑問です。アプリ。このDBを使用していることはブロックされます。PLSQLプロシージャ内のOracleトランザクション
0
A
答えて
4
Oracleは行レベルのロックを使用します。したがって、異なる状況を見なければなりません。
1.)Webアプリケーションとあなたの仕事は異なる行に影響を与えます:あなたは大丈夫です。
2.)Webアプリケーションとジョブが同じ行に影響し、ロック時間(UPDATEとCOMMITの間の時間)が短くてすみます。 Oracleは実行をシリアライズします。
3.)あなたの仕事またはウェブアプリケーションのいずれかが長時間ロックを保持します。これは注目に値するでしょう:Oracleはトランザクションが完了するのを待つでしょう。この間、仕事やアプリがハングアップしても問題ありません。ロック時間が時間を超えていると、タイムアウトや不便なユーザーに問題が発生する可能性があります。
4.あなたの仕事とあなたのアプリは複数の行を更新し、これらの行のロックを長時間保持し、ジョブとアプリは同じ行に影響します。これは危険です。あなたのジョブが行Aのロックを保持していて行Bを更新しようとしていて、アプリケーションが行Bのロックを保持していて行Aを更新しようとしているため、デッドロックが発生する可能性があります。 2つのセッション - 仕事かアプリか。これは非常に難しいです。なぜなら、再現と分析が非常に難しいからです。
実際にどのような場合に該当するのか自分自身で判断しなければなりません。
関連する問題
- 1. ジョブ・プロシージャ内のジョブ番号の参照 - oracle plsql
- 2. PLSQLプロシージャの終了
- 3. Oracle PLSQLプロシージャのパラメータの値を確認する方法
- 4. PLSQLプロシージャのパラメータの問題
- 5. Oracle PLSQLで個々のトランザクションをコミットする方法
- 6. oracle plsqlプロシージャカーソルループ内のテーブルの動的カウント
- 7. Oracle/PLSQLのパフォーマンス
- 8. PLSQL - Oracleのコレクション
- 9. PLSQL DBMS_LOCK.REQUESTおよびAutonoumousプロシージャ
- 10. Oracle:トランザクション内のトリガー(2ステートメント)
- 11. ホリスティックSQLクエリ(Oracle PLSQL内)およびUX
- 12. Oracle PLSQLのcase文
- 13. plsqlのプロシージャ内のSQL文の測定時間
- 14. Oracle 11g:プロシージャ内でのカーソルの使用
- 15. 廃止予定のPLSQLプロシージャ/ファンクションのコード
- 16. oracleのplsqlプロシージャ中に表を作成して選択できません
- 17. PLSQL extract procudures oracle 9i
- 18. Oracle 12c PLSQL MERGEエラー
- 19. Oracleプロシージャのパラメータ
- 20. IN()句の配列oracle PLSQL
- 21. oracle plsqlのステップ・バイ・ステップ・ロギング
- 22. oracle plsqlの動的なgoto
- 23. プロシージャ内でOracleテーブルを返す方法
- 24. PLSQLプロシージャ実行エラーが無効です。
- 25. Oracleプロシージャの実行
- 26. PLSQL ORACLE:トリガーによるエラー
- 27. pl/sqlループレコードselect oracle plsql
- 28. PLsqlまたはOracle SQL
- 29. Oracleのトランザクション
- 30. spring&plsqlストアドプロシージャ - 例外処理とトランザクション