我有一個方法兩個事務可以在Oracle中同時運行嗎?
void SaveApplicationData()
{
begin transaction
update
insert
commit transaction
}
如果兩個用戶在同一時間調用此方法,可以在這兩個數據庫事務在同時運行?
我有一個方法兩個事務可以在Oracle中同時運行嗎?
void SaveApplicationData()
{
begin transaction
update
insert
commit transaction
}
如果兩個用戶在同一時間調用此方法,可以在這兩個數據庫事務在同時運行?
大量的事務可以同時運行。但是,如果他們更新相同的行,則可能會出現鎖定問題,並且可能會回滾一個或多個鎖定問題。 (這是因爲我處理衝突的事務很長一段時間。)
是的,他們可以同時運行
確保使用正確的Isolation Level
在Oracle中,一個事務就只需等待其他完成。如果發生死鎖,唯一會自動回滾的情況是。 – 2010-08-09 02:45:29
謝謝!可以或不可以,我仍然困惑。 – nandin 2010-08-09 11:53:00
@Ding:交易可以同時進行。只要它們不嘗試更改相同的數據,它們就會同時運行,或者在某些情況下,如果一個事務正在讀取數據,另一個事務(尚未提交)已發生更改。事務就好像它們按順序運行一樣,Oracle花費了大量工作來使其順利運行,但您可以在正在處理的事務中啓動許多事務。 – 2010-08-09 16:07:16