私は毎秒実行している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. Oracle PLSQLプロシージャのパラメータの値を確認する方法
- 3. Oracle PLSQLで個々のトランザクションをコミットする方法
- 4. oracle plsqlプロシージャカーソルループ内のテーブルの動的カウント
- 5. Oracle/PLSQLのパフォーマンス
- 6. PLSQL - Oracleのコレクション
- 7. PLSQL DBMS_LOCK.REQUESTおよびAutonoumousプロシージャ
- 8. ホリスティックSQLクエリ(Oracle PLSQL内)およびUX
- 9. Oracle:トランザクション内のトリガー(2ステートメント)
- 10. Oracle PLSQLのcase文
- 11. plsqlのプロシージャ内のSQL文の測定時間
- 12. 廃止予定のPLSQLプロシージャ/ファンクションのコード
- 13. Oracle 11g:プロシージャ内でのカーソルの使用
- 14. PLSQL extract procudures oracle 9i
- 15. Oracleプロシージャのパラメータ
- 16. IN()句の配列oracle PLSQL
- 17. oracle plsqlの動的なgoto
- 18. PLSQLプロシージャ実行エラーが無効です。
- 19. プロシージャ内でOracleテーブルを返す方法
- 20. Oracleプロシージャの実行
- 21. pl/sqlループレコードselect oracle plsql
- 22. Oracleのトランザクション
- 23. spring&plsqlストアドプロシージャ - 例外処理とトランザクション
- 24. oracle pl/sqlの内部プロシージャから外部プロシージャへのカーソルの戻り
- 25. Oracleストアド・プロシージャ・ドロップ・ユーザー
- 26. プロシージャBからプロシージャAによって行われたPLSQLロールバックの変更
- 27. plsqlループ内でOracleに文字列を追加する
- 28. oracleフォーム - ロック・プロシージャのプロパティ
- 29. oracle plsqlパラメータのデフォルト値はNULL
- 30. pg_stat_activityはプロシージャまたはトランザクション内で更新されません