¿Existe un beneficio de rendimiento al colocar archivos de registro de transacciones en una unidad separada?

9

Hay muchas publicaciones de blog y artículos de mejores prácticas que ensalzan las virtudes de colocar el archivo de datos de SQL Server en un disco duro y el registro de transacciones en otro. La razón dada es que el archivo de la base de datos experimentará lecturas y escrituras aleatorias, mientras que el registro de transacciones solo tendrá escrituras secuenciales.

Pero, ¿y si tienes cientos de bases de datos? ¿Existe un verdadero beneficio de rendimiento al colocar cientos de archivos de registro de transacciones en un disco separado? Si se escriben varios registros de transacciones, entonces creo que las escrituras del registro de transacciones serían tan aleatorias como las escrituras de la base de datos.

8kb
fuente

Respuestas:

7

Correcto. En teoría, si tiene cientos de bases de datos, necesita cientos de unidades, una para cada registro. En la práctica, aunque a uno no le interese ese caso, porque cuando tiene cientos de bases de datos, obviamente no espera un rendimiento de TPC de primer nivel para cada base de datos. Es probable que tenga algunos DB con SLA estrictos y de alto rendimiento, y podría tenerlos cada uno en ejes separados, mientras que los muchos SLA de nivel inferior están en algunos discos compartidos.

Remus Rusanu
fuente
2

El registro de transacciones es exactamente eso ... un registro en ejecución de todas las transacciones. Como tal, se llena continuamente en una dirección hasta que esté marcado y sobrescrito, o truncado y sobrescrito. La sobrescritura es secuencial.

Considera tus archivos de datos. Un registro de cliente puede contener un pedido de hace 5 años y uno de hace 10 años. Si elimina esas órdenes (por ejemplo, está archivando datos en otro lugar), en el tlog actual tiene eliminar 1 y eliminar 2, en orden. Sin embargo, en sus archivos de datos ha tocado bloques que se escribieron hace 5 y 10 años.

Así que seguro que sí :)

Eric Higgins
fuente
2

Colocar el registro de transacciones en un disco separado por sí solo le brindará un mejor rendimiento que colocarlo junto con otros archivos de datos / registro. Si coloca todos los registros en el mismo disco, en realidad no está haciendo IO secuencial, sino IO aleatorio entre estos archivos de registro.

StanleyJohns
fuente