Anda dapat menemukan panduan yang cukup komprehensif untuk pertanyaan ini di sini , tetapi untuk meringkas, SQL Server tidak akan mengembalikan kontrol ke aplikasi yang melakukan transaksi sampai transaksi itu telah dikeraskan ke disk. Secara khusus, setelah telah diperkeras ke file log transaksi, kontrol dapat dikembalikan.
Data, pada titik ini, mungkin tidak dikeraskan ke dalam file data, mungkin masih dalam cache buffer data, tetapi karena telah diperkeras ke dalam log transaksi maka pemulihan database, jika terjadi kegagalan, dapat memulihkan ini transaksi dan tahan perubahan dengan aman.
Ada cache buffer cache dalam memori yang digunakan untuk mengurangi dampak kinerja dari sekuensial menulis ke log transaksi. Buffer di-flush ke disk pada beberapa kondisi, tetapi salah satunya adalah komit transaksi. Sampai data ini dikeraskan, kontrol tidak dikembalikan ke pemanggil, jadi meskipun Anda mengalami kegagalan selama buffer flush ini, konsistensi transaksi tetap dipertahankan karena transaksi ini belum dianggap dilakukan. Anda akan kehilangan perubahan data dalam transaksi itu, tetapi karena tidak dilakukan, aplikasi Anda akan menganggap perubahan itu hilang karena komit tidak pernah selesai.