数据库阻塞---SQL的隔离级别
數據庫的隔離級別主要是為讀操作定義保護級別的;對于修改寫操作,無論哪種隔離級別都可以保證寫操作的正確執行。SQL標準為三種副作用:
Dirty reads: 事務T2提交了數據,事務T1這時讀取了T2提交的數據,T2發生異常rollback,那么T1讀取的數據就是有問題的數據,是dirty read。
unrepeatable reads:事務T1讀取數據以后,事務T2修改了T1讀取的數據,事務T1以同樣的查詢從數據庫讀取數據,就會發現和上一次讀取的不一致,所以稱為unrepeatable reads。
phantom reads:事務T1查詢數據庫并返回數據,事務T2插入了新的數據,事務T1一同樣的查詢讀取數據庫數據,發現會多出一些數據,所以稱為phantom reads。
設置合適的數據庫事務隔離級別可以防止上面問題的發生,但是隔離級別越高并發性越差一般會設置為read-committed
?
| Read Uncommited | Y | Y | Y |
| Read commited | N | Y | Y |
| Repeatable Read | N | N | Y |
| Serializable | N | N | N |
?
INF:了解和解決 SQL Server 7.0 或 2000 阻塞問題
http://support.microsoft.com/kb/224453/zh-cn
如何監視 SQL Server 2000 阻塞
http://support.microsoft.com/kb/271509/
轉載于:https://www.cnblogs.com/moon25/archive/2008/07/22/1248542.html
總結
以上是生活随笔為你收集整理的数据库阻塞---SQL的隔离级别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用ODBC连接SQL Anywhere
- 下一篇: FreeSql (三十五)CodeFir