sqlserver存儲方式sql
頁 併發
sqlserver是以頁的形式存儲數據,每一個數據頁的大小爲8KB,sqlserver會把空間分爲多個頁,sqlserver與數據交互單位最小的io操做就是頁級別。(頁的類型有數據頁,索引頁等)sqlserver
區spa
八個連續的頁會組合成一個區,區的最少是由八個連續的頁組成。server
事務隔離級別blog
1.READ UNCOMMITTED 容許全部髒讀,不可重複讀和幻讀索引
2.READ COMMITTED 不容許髒讀,但容許不可重複讀和幻讀事務
3.REPEATABLE READ 不容許髒讀、不可重複讀,但容許幻讀同步
4.SERIALIZABLE 事務串行化io
事務併發引起的問題
1.髒讀
例如當事務A對訂單剩餘量(100個)作了修改(減去1個),此時事務B進行獲取到的訂單剩餘量是(99個),事務A此時又對該訂單進行了回滾,那麼事務B剛纔獲取到的訂單剩餘量(99個)就是屬於髒讀。
2.幻讀
幻讀主要是在數據刪除和添加的時候引起的問題,例如事務A獲取訂單表總記錄數爲(10條),此時事務B刪除了一條記錄(9條),那麼事務A再次去獲取訂表數據的時候就會發現只剩下(9條)數據,這種操做對於事務A來講就至關於出現幻覺。
3.不可重複讀
跟幻讀的區別是幻讀針對的是刪除和添加的動做,不可重複讀通常針對修改,例如事務A獲取訂單剩餘量爲(10個),此時事務B對訂單作了修改去掉1個(剩餘9個),事務A再次獲取的時候就是(9條),事務A先後兩次讀取數據值不同。
4.丟失更新
事務A獲取訂單剩餘量爲(10個),此時事務B也同步獲取到訂單剩餘量爲(10個),事務A修改訂單剩餘量-1,此時訂單剩餘量爲(9個),而且提交事務,事務B修改訂單剩餘量-1,此時訂單剩餘量爲(9個),也提交事務,此時訂單剩餘量應該爲(8個)的可是實際剩餘量確實(9個)
1.髒讀
2.不可重複讀
3.幻讀
4.丟失更新