2013年9月24日 星期二

SQL Server Transaction Log


ACID : Atomicity, Consistency, Isolation, Durability
MDF: 真正的資料 table, random read/write (RAID 5), read more
LDF: transaction log, sequential read/write (RAID0/10)
Transaction log: FULL Recovery or Simple Recovery (Full-> Simple切換後, 要 full db backup才會生效)
Full Recovery: 要 full db backup後才會清空
Simple Recovery: undo/redo 沒用到的可被標記reuse
Check point: dirty page 裡的資料會被寫回 MDF, 如果是處於 "simple recovery" undo/redo 沒用到的transaction log可標記 reusable。60KB or 一定時間會發生。影響 recovery的時間。
Commit: transaction 的結束
==

有異動(Insert/Update/Delete)時, transaction log 一定會先被寫入
Select時, cache沒有的就 scan MDF

==

VDF: LDF內儲存 transaction log的單位,
transaction log size
< 64MB => 4份
64MB ~ 1GB => 8份
1GB以上 => 12份

shrink 或 LDF 空間不夠時 increase 時會因 long transaction 無法 release(可查詢VDF狀態), 或 increase後造成碎裂(too many VDF files, 可查詢VDF狀態)。

==

以上是 TechDay2013 聽胡百敬老師section的筆記,可能有誤,日後再回來補完。