Obtener información acerca de las cachés de disco con SQL Server que debe saber todo administrador de base de datos

Se aplica a: Microsoft SQL Server 2005 Express EditionMicrosoft SQL Server 2005 Standard EditionMicrosoft SQL Server 2005 Workgroup Edition

Resumen


Un sistema de base de datos primer lugar es responsable de precisa almacenamiento y recuperación de datos, incluso en el caso de errores del sistema inesperado.

El sistema debe garantizar la atomicidad y durabilidad de las transacciones, mientras que la contabilidad de ejecución actual, varias transacciones y varios puntos de error. A menudo esto se conoce como las propiedades ACID (atomicidad, coherencia, aislamiento y durabilidad).

Este artículo tratan las implicaciones de una unidad de disco almacena en caché. Se recomienda que lea los siguientes artículos en Microsoft Knowledge Base para aclarar en mayor profundidad en el almacenamiento en caché y se alternan las discusiones de modo de fallo:
86903 de SQL Server y almacenamiento en caché de los controladores de disco

230785 algoritmos de almacenamiento de datos y registro de SQL Server 7.0 y SQL Server 2000 amplían la confiabilidad de los datos

También se recomiendan los siguientes documentos:
Nota: Estos dos documentos se aplican a todas las versiones compatibles de SQL Server.

Más información


Microsoft SQL Server y muchos productos de base de datos estándar en el mercado hoy en día utilizan el protocolo de escritura anticipada registro (WAL).
Protocolo de registro de escritura anticipada (WAL)
El término "protocolo" es una excelente manera de describir WAL. Es un específico y un conjunto definido de pasos de implementación necesarios para garantizar que los datos se almacenan e intercambian correctamente y se pueden recuperar a un estado conocido en caso de error. Al igual que una red contiene un protocolo definido para intercambiar datos de forma coherente y protegida, así que demasiado el WAL describir el protocolo para proteger los datos.
Todas las versiones de SQL Server abren los archivos de registro y de datos mediante la función CreateFile de Win32. El miembro dwFlagsAndAttributes incluye la opción de FILE_FLAG_WRITE_THROUGH cuando abre por SQL Server.
FILE_FLAG_WRITE_THROUGH
Esta opción indica al sistema que escriba en una caché intermedia e ir directamente al disco. El sistema aún puede almacenar en caché las operaciones de escritura, pero no las puede vaciar de forma diferida.

La opción de FILE_FLAG_WRITE_THROUGH garantiza que, cuando una operación devuelve exitosa finalización de escritura que correctamente se almacenan los datos en un almacenamiento estable. Esto se alinea con la especificación del protocolo escribir registro anticipada (WAL) para asegurar los datos.
Muchas unidades de disco (SATA, ATA, SCSI e IDE que se basa) contienen memorias caché incorporadas de 512 KB, 1 MB y más grandes. Cachés de unidad normalmente se basan en un condensador y no es una solución de batería. Estos mecanismos de caché no pueden garantizar ciclo de escrituras a través de una potencia o punto de error similar. Sólo garantiza la realización de las operaciones de escritura del sector. Como las unidades continúan creciendo en tamaño, aumentan las cachés y grandes cantidades de datos que pueden exponer durante una falla.


Sistemas de controlador de almacenamiento en caché mejorado Deshabilitar caché en disco y proporcionan una funcional solución para caché con respaldo de batería. Estas cachés pueden mantener los datos en la caché durante varios días e incluso permitir la tarjeta de almacenamiento en caché para colocarse en un segundo equipo. Cuando la alimentación se restaura correctamente, los datos no se vacían completamente antes de permite cualquier acceso a los datos adicional. Muchos de ellos permiten porcentaje de lectura frente a la memoria caché de escritura para establecerse para un rendimiento óptimo. Algunos contienen áreas de almacenamiento de grandes cantidades de memoria. De hecho, para un segmento muy específico del mercado, algunos fabricantes de hardware proporcionan almacenamiento en caché de sistemas con varios gigabytes de caché de discos high-end de batería. Estos pueden mejorar significativamente el rendimiento de la base de datos.

Transferencias de E/S se realizan sin el uso de una memoria caché pueden ser considerablemente superior debido a velocidades de giro de unidad de disco duro, el tiempo mecánico que es necesario para mover los cabezales de la unidad y otros factores limitantes. Las instalaciones de SQL Server están dirigidas a sistemas que proporcionan controladores de almacenamiento en caché. Estos controladores de desactivar las cachés de disco y medios estables almacena en caché para satisfacer los requisitos de E/S de SQL Server. Evitan los problemas de rendimiento relacionados con disco seek y escribir veces mediante las diversas optimizaciones de la controladora de caché.

Hay muchos tipos de implementaciones de subsistema. RAID y SAN es dos ejemplos de estos tipos de implementaciones de subsistema. Estos sistemas se crean normalmente con las unidades SCSI. Hay varias razones para ello. La siguiente sección describe genéricamente consideraciones de unidad de nivel alto.

Unidades SCSI:
  • Normalmente se fabrican para el uso resistente.
  • Normalmente se van dirigidos a implementaciones multiusuario basada en servidor.
  • Suelen tener mejor mientras tanto a las tasas de error que otras implementaciones.
  • Contener sofisticada heurística para predecir errores inminentes.
Otras implementaciones de unidad, como IDE, ATA y SATA:
  • Normalmente están fabricados para uso resistente ligero y medio.
  • Normalmente se van dirigidos a aplicaciones de usuario único.
  • Algunas implementaciones más recientes contienen sofisticada heurística para predecir errores inminentes.
Controladores no SCSI, en el escritorio requieren más ancho de banda del procesador principal (CPU) y con frecuencia están limitados por un comando activo. Por ejemplo, cuando una unidad SCSI no está ajustando un bloque defectuoso, la unidad requiere que los comandos de host debe esperar. El bus ATA presenta otro ejemplo. El bus ATA admite 2 dispositivos, pero sólo un único comando puede estar activo. Esto deja inactiva una unidad mientras la otra unidad de servicios del comando pendiente. Los sistemas RAID basados en las tecnologías desktop pueden experimentar todos estos síntomas y se ve notoriamente afectados por el contestador más lento. A menos que estos sistemas utilizan diseños avanzados, su rendimiento no será tan eficaz como el rendimiento de sistemas basados en SCSI.

Hay situaciones en las que una unidad de escritorio o de la matriz es una solución de bajo costo adecuada. Por ejemplo, si configura una base de datos de sólo lectura para reporting, no debería producirse muchos de los factores de rendimiento de una base de datos OLTP cuando está deshabilitado el almacenamiento en caché de disco.

Tamaños de unidades siguen aumentando. Unidades de bajo costo y alta capacidad pueden ser muy interesante. Pero al configurar la unidad para SQL Server y las necesidades de tiempo de respuesta de su negocio, debe considerar detenidamente los problemas siguientes:
  • Diseño de la ruta de acceso
  • El requisito para deshabilitar la caché de disco
La tabla siguiente proporciona los comentarios de nivel alto. La información de comentario se basa en configuraciones comunes de fabricación.

Tipo de unidad base del sistemaComentarios
IDE y ATA
  • Giran a 7.200 RPM.
  • Dirigido a los escritorios y aplicaciones de usuario único.
  • De forma predeterminada, está habilitada la caché de disco. Utilice la 'disco ', Hardware ficha Propiedades para obtener acceso a las 'propiedades', pestaña 'Directiva' para controlar la configuración de caché de disco.

    Nota: Algunas unidades no respetan esta configuración. Estas unidades requieren una utilidad de fabricante específico para deshabilitar la caché.
  • Debe deshabilitar el almacenamiento en caché de disco para poder utilizar la unidad con SQL Server.
  • Sistemas basados en ATA y IDE pueden posponer comandos de host cuando realicen actividades como ajuste de bloque defectuoso. Esto podría conducir a los períodos de actividad de E/S detenida.
Equipo portátil/IDE
  • Giran a 5.200 RPM.
  • Diseñado para equipos portátiles.
  • Vea otros comentarios en sección IDE y ATA.
  • Almacenamiento ReadyDrive y Flash NAND puede proporcionar funciones de entrada-salida estables.
SATA
  • Giran a 7.200 RPM.
  • Dirigido a ordenadores personales y servidores de gama media.
  • De forma predeterminada, está habilitada la caché de disco. Utilice la 'disco ', Hardware ficha Propiedades para obtener acceso a las 'propiedades', pestaña 'Directiva' para controlar la configuración de caché de disco.

    Nota: Algunas unidades no respetan esta configuración. Estas unidades requieren una utilidad de fabricante específico para deshabilitar la caché.
  • Almacenamiento mayor capacidad y más grande cachés de IDE y ATA contador de piezas.
  • Debe deshabilitar el almacenamiento en caché de disco para poder utilizar la unidad con SQL Server.
  • Interconexiones y cableado más pequeños.
  • Fácil interconexión con las instalaciones y unidades Serial Attached SCSI (SAS).
  • Algunos incluyen construcciones de predicción de error.
SCSI
  • Giran a 10.000 y 15.000 RPM.
  • Diseñado para servidores y aplicaciones multiusuario.
  • Diseñado para ciclos de trabajo más pesados y tasas de error menor.
  • De forma predeterminada, está habilitada la caché de disco. Utilice la 'disco ', Hardware ficha Propiedades para obtener acceso a las 'propiedades', pestaña 'Directiva' para controlar la configuración de caché de disco.

    Nota: Algunas unidades no respetan esta configuración. Estas unidades requieren una utilidad de fabricante específico para deshabilitar la caché.
  • Debe deshabilitar el almacenamiento en caché de disco para poder utilizar la unidad con SQL Server.
  • Los sistemas SAN y la matriz normalmente menor cableado e interconexiones.
  • Incluyen construcciones de predicción de error.
Serial Attached SCSI (SAS) incluye la cola avanzada hasta 256 niveles. SAS también incluye características como la cabeza de la cola y poner en cola en el orden correcto. La placa de SAS está diseñada de forma que permite el uso de SAS y SATA unidades dentro del mismo sistema. Las ventajas del diseño SAS son obvias.

La instalación de SQL Server depende de la capacidad del controlador para deshabilitar la caché de disco y para proporcionar una memoria caché de E/S estable. Escribir datos en el orden correcto en varios discos, no es un obstáculo para SQL Server como el controlador proporciona las capacidades de almacenamiento en caché de medios estables correcto. Aumenta la complejidad del diseño de controlador con técnicas de seguridad avanzada de datos como el reflejo.

Para proteger totalmente los datos, debe asegurarse de que todos los datos correctamente administra la caché. En muchas situaciones, esto significa que debe deshabilitar la caché de escritura de la unidad de disco.

Nota Asegúrese de que cualquier mecanismo de almacenamiento en caché alternativo correctamente puede controlar varios tipos de error.

Microsoft ha realizado pruebas en varias unidades SCSI e IDE mediante la utilidad SQLIOSim. Esta herramienta simula actividad pesado de lectura y escritura asincrónicas a un dispositivo de datos simulados y dispositivo de registro. Estadísticas de rendimiento de la prueba muestran que las operaciones de escritura promedio por segundo entre 50 y 70 para una unidad con memoria caché de escritura deshabilitada y un rango RPM entre 5.200 y 7.200.

Para obtener información adicional y detalles acerca de SQLIOSim, consulte el artículo siguiente en Microsoft Knowledge Base:
231619 cómo utilizar la utilidad SQLIOSim para simular la actividad de SQL Server en un subsistema de disco
Muchos fabricantes de PC (por ejemplo, Compaq, Dell, Gateway o HP) orden las unidades con la caché de escritura deshabilitada. Sin embargo, muestra pruebas que esto no siempre puede suceder por lo que siempre debería probarlo completamente.

Nota: Si usted tiene cualquier pregunta acerca del estado de almacenamiento en caché de la unidad de disco, póngase en contacto con el fabricante y obtener los valores apropiados de utilidad o puente para deshabilitar las operaciones de almacenamiento en caché de escritura.
SQL Server requiere sistemas para admitir 'entrega garantizada a medios estables' tal como se describe como se indica en los Requisitos del programa de confiabilidad de SQL Server i/OS. Para obtener más información acerca de los requisitos de entrada y salidos para el motor de base de datos de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

Requisitos de entrada y salida de motor de base de datos de 967576 de Microsoft SQL Server