執行DELETE查詢時,從哪裏刪除數據?爲什麼數據在其他會話中仍然可見?在Oracle SQL中(在體系結構級別)觸發DELETE查詢時執行的後臺進程是什麼?在Oracle SQL中,爲什麼刪除(未提交)的行在當前會話中不可見,但在其他會話中可見?
1
A
回答
3
除了對ziesemer提到你的ACID屬性的討論,你應該知道關於Multi-Version Concurrency Control或MVCC。如果你想知道'所有關於它',請考慮閱讀Philip A.Bernstein,Vassos Hadzilacos,Nathan Goodman的Concurrency Control and Recovery in Database Systems(可供下載)。
在Oracle和其他類似的MVCC DBMS中,當你啓動一個事務時,一個記錄保留一個時間戳,標識開始時間(但時間戳值不一定是簡單的'自從Unix Epoch'值以來的秒數)。在該事務正在運行時,在啓動時間後,它不會看到插入時間戳的任何數據。系統保持數據頁的先前版本可用於仍在運行的交易。當事務寫入一個頁面時,它會創建一個帶有新時間戳的新副本,但該副本在修改事務提交之前不會提供給其他事務,即使這樣,它也只能用於提交後啓動的事務。
3
2
只要命令發出,該行就會被刪除,而不是其他會話,直到COMMIT
。
相關問題
- 1. phpmyadmin會話ID在URL中可見
- 2. 爲什麼當前的Oracle ODAC可連接性在VS 2013中不可見?
- 3. rails中會話變量的可見性
- 4. 會話在其他計算機上可見嗎?
- 5. Unity3d c# - 變量在檢查器中可見,但不在其他類中可見
- 6. 對其他會話可見的Nhibernate刷新?
- 7. 會話變量在Jquery發佈的腳本中不可見?
- 8. Postgres的 - 如何在一個會話更新(在IF-THEN塊)成爲其他會話立即可見
- 9. 表單提交後會話變量從會話中刪除
- 10. 會話數據可見;可以嗎?
- 11. UITableView在IOS7中可見,但在IOS6中不可見
- 12. 開發在app_dev.php中可見但在app.php中不可見
- 13. 複選框在IE8中不可見,但在Firefox中可見
- 14. 在設備中查看不可見,但在XML中可見
- 15. 在excel中刪除不可見字符
- 16. 前景在實際設備中不可見但在模擬器中可見
- 17. Var在ViewDIdLoad中可見但不在其他地方
- 18. 父對話狀態更改爲不可見,但子對話仍然可見
- 19. 其他會話上的Oracle SQL跟蹤
- 20. 在VB中調用會話之前和之後的按鈕可見性
- 21. 當前在RecyclerView中的可見項目
- 22. Java,其他包中的類可見性但不包含在其他插件中
- 23. jQuery對話框在Safari中不可見,但它有z-index?
- 24. PHP會話ID相同,但會話變量不見了
- 25. 在bash中,爲什麼變量在shell中可見,但不在shell腳本中
- 26. 爲什麼TreeViewItems不是在Multibinding中生成的,除非可見?
- 27. ServletContext的變量不會出現在其他的servlet可見
- 28. nHibernate Session-Per-Request在會話結束前刪除並提交
- 29. Dictionary.ElementAt方法在某些類中可見,但不是其他類。
- 30. 在AppInventor中使ImageSprite可見/不可見
這就是事務的工作方式:http://en.wikipedia.org/wiki/Database_transaction,當然還有Orale參考:http://docs.oracle.com/cd/E11882_01/server.112/e25789/transact。 HTM – 2012-01-14 19:41:49