我在這裏補充一些sql。我要的是像下面這樣:Oracle中的自願事務優先級
select ... for update priority 2; // Session 2
所以,當我在另一個會話
select ... for update priority 1; // Session 1
它立即返回運行,並在會話2將引發錯誤(並因此執行回退),並鎖定在會話中的第1行
然後,同時會話1持有鎖,運行在會話2.
select ... for update priority 2; // Session 2
以下
將等到會話1釋放鎖定。
我怎麼能實現這樣的計劃,因爲priority x
只是我已經編造的東西。我只需要可以做兩個優先級別的事情。另外,我很高興隱藏了我在PL/SQL過程中的所有邏輯,我不需要爲泛型SQL語句工作。
我正在使用Oracle 10g,如果這有什麼區別。
hrm,你確定這個......資源管理器會給你分配它的優先級(cpu/io),但是就我所知,鎖仍然可以工作,只是因爲一個會話有更多的資源分配給它並不意味着它的鎖可能會被盜。 –
這是不正確的。數據庫資源管理器避免了優先級反轉問題。 – steve
你能否提供一個使用資源管理器來解決這個問題的例子? –