¿La necesidad de unidad de registro de transacciones a ser tan rápido como la unidad de base de datos?

StackOverflow https://stackoverflow.com/questions/4270543

Pregunta

Estamos diciendo a nuestros clientes para poner un archivo de base de datos SQL Server (MDF), en una unidad física diferente que el archivo de registro de transacciones (LDF). La empresa de tecnología (contratado por el cliente) quería poner el registro de transacciones en una unidad más lenta (por ejemplo, más barato) que la unidad de base de datos, ya que con los registros de transacciones, que está escribiendo simplemente secuencialmente el archivo de registro.

Yo les dije que pensaba que la unidad (en realidad una configuración RAID) necesarios para estar en una unidad rápida, así, ya que todos los datos cambiando llamada a la base de datos, necesidades de ser salvo, así como a la propia base de datos.

Después de decir esto, sin embargo, me di cuenta que no estaba completamente seguro de eso. ¿La velocidad de la unidad de registro de transacciones a hacer una diferencia significativa en el rendimiento ... si la unidad con la base de datos es rápido?

¿Fue útil?

Solución

La velocidad de la unidad de registro es el factor más crítico para una base de datos intensivos de escritura. No hay cambios pueden ocurrir más rápido que el registro se puede escribir, por lo que la unidad tiene que apoyar su máxima velocidad de actualización experimentado en un pico. Y todas las actualizaciones generan registro. archivo de base de datos (MDF / NDF) actualizaciones puede permitirse tasas más lentas de escritura debido a dos factores

  • actualizaciones de los datos se escriben a cabo con pereza y se vacía al puesto de control. Esto significa que un pico de actualización se puede amortiza en la unidad de promedio rendimiento
  • varias actualizaciones se pueden acumular en una sola página y por lo tanto tendrán una sola escritura

Así que tienes razón en que el registro de rendimiento es crítico.

Pero, al mismo tiempo, las escrituras de registro tienen un patrón específico de escrituras secuenciales: registro siempre se añade al final. Todos los accionamientos mecánicos tienen un rendimiento mucho más alto, tanto para las lecturas y escrituras, para operaciones secuenciales, ya que implican menos movimiento físico de los cabezales del disco. Así también es cierto lo que sus operaciones chicos dicen que una unidad más lenta puede ofrecer, de hecho, el rendimiento suficiente.

Pero todos estos vienen con algunos grandes advertencias:

  • la unidad más lenta (o una combinación de RAID) realmente debe ofrecer alta secuencial rendimiento
  • la unidad debe ver las escrituras de registro de una y sólo una base de datos, y nada más. Cualquier otra operación que pudiera interferir con la posición actual del cabezal del disco va a dañar su escritura rendimiento y reducir las prestaciones de base de datos más lenta
  • el registro debe ser única escritura, y no leer. Tenga en cuenta que algunos componentes necesitan leer desde el registro, y por lo tanto van a mover la mecánica de disco a otras posiciones para que puedan leer de nuevo el registro escrito anteriormente:
    • transaccional replicación
    • reflejo de base de datos
    • copia de seguridad de registro

Otros consejos

En términos simplistas, si usted está hablando de una base de datos OLTP, su rendimiento está determinado por la velocidad de sus escrituras en el registro de transacciones. Una vez que este límite máximo rendimiento es exitosa, todas las demás acciones dependientes deben esperar en la confirmación tiene que entrar al completo.

Esta es una versión muy simplista en la parte interna del registro de transacciones, a la que se dedican los libros enteros, pero los restos de punto rudimentaria.

Ahora bien, si el sistema de almacenamiento que está trabajando puede proporcionar la IOPS que necesita para apoyar tanto a los archivos de registro de transacciones y datos de base de datos junto a continuación, una unidad compartida / LUN proporcionaría adecuada para sus necesidades.

Para proporcionarle un determinado curso de acción recomendado que tendría que saber más acerca de su carga de trabajo de base de datos y el rendimiento que necesita el servidor de base de datos para entregar.

conseguir sus manos en el título SQL Server 2008 internos para conseguir una mirada exhaustiva sobre el funcionamiento interno del registro de transacciones de SQL Server, que es uno de los mejores títulos de SQL Server por ahí y que pagará por sí mismo en cuestión de minutos desde el valor que obtiene de la lectura.

Bueno, el registro de transacciones es la estructura principal que proporciona ácido, puede ser un gran cuello de botella para el rendimiento, y si lo hace copias de seguridad con regularidad el espacio requerido tiene un límite superior, por lo que lo pondría en un lugar seguro, rápido conducir con el espacio justo + un poco de margen.

El registro de transacciones debe estar en las unidades más rápidas, si sólo se puede completar la escritura en el registro que puede hacer el resto de la operación en la memoria y dejar que se golpeó disco más adelante.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top