Puede encontrar una guía bastante completa para esta pregunta aquí , pero para resumir, SQL Server no devolverá el control a la aplicación que confirmó una transacción hasta que esa transacción se haya endurecido en el disco. Específicamente, una vez que se ha endurecido en el archivo de registro de transacciones, se puede devolver el control.
Los datos, en este punto, pueden no estar reforzados en el archivo de datos, aún pueden estar en la memoria caché del búfer de datos, pero debido a que se han endurecido en el registro de transacciones, la recuperación de la base de datos, en caso de falla, puede recuperar esto. transacción y persistir los cambios de forma segura.
Hay una memoria caché de búfer de registro en la memoria utilizada para reducir los impactos en el rendimiento de las escrituras secuenciales en los registros de transacciones. El búfer se vacía en el disco en varias condiciones, pero una de ellas es una confirmación de transacción. Hasta que estos datos se hayan reforzado, el control no se devuelve a la persona que llama, por lo que incluso si tiene un error durante este vaciado del búfer, la consistencia transaccional se mantiene porque esta transacción aún no se considera comprometida. Perderá los cambios de datos en esa transacción, pero como no se confirmó, su aplicación ya consideraría esos cambios perdidos ya que el compromiso nunca se completó.