
En primer lugar, no soy administrador de sistemas, solo un programador frustrado por el bajo rendimiento del servidor...
Actualmente estamos ejecutando una máquina virtual (creo que el host es Win Server 2008) en una CPU E5-2650 más nueva, 24 GB de RAM, al menos según el cuadro de diálogo Propiedades del sistema. No puedo decir con seguridad qué recursos tiene la máquina virtual SQL porque solo tengo acceso a ella y no al host. Lo siento, no lo sé muy bien. Tampoco quiero que nuestro actual administrador del sistema sienta que le estoy pisando los pies al hacerle un montón de preguntas si no es necesario. Sólo quiero defender la actualización si eso ayuda...
Estamos ejecutando SQL Server 2008 r2, todos nuestros clientes son Win 7 o RC a través de un servidor terminal que ejecuta 2008. Nuestra aplicación tiene mucha base de datos, especialmente si se considera el tamaño de nuestra organización.
Entonces, mi pregunta principal es: actualmente estamos ejecutando Windows Server 2003 r2 sp2. ¿Podría la actualización a Server 2008 r2 (o posterior) mejorar notablemente el rendimiento? Leí que debido a sus características más nuevas, puede mejorar el rendimiento en otros lugares, pero no he visto a nadie comentar sobre el rendimiento de la base de datos.
Si es así, ¿hay alguna evidencia que pueda utilizar para respaldar mi argumento?
Además, dado que ejecutamos SQL 2008 r2 y nuestros clientes son Win 7, ¿qué controladores de base de datos deberían tener instalados nuestros clientes? ¿Qué debería tener instalado el servidor?
Si necesito dar más detalles sobre algo, por favor comente.
Respuesta1
Posible duplicado de: ¿Cómo se realizan pruebas de carga y planificación de capacidad para bases de datos?
Debe trabajar con el equipo de administración de sistemas para medir e identificar los cuellos de botella actuales. Si es difícil relacionarse con él, lo comprendo y eso apesta; Tendrás que descubrir cómo trabajar mejor con él. Será una muy buena idea tener una descripción sólida del problema, con casos de prueba reproducibles, en lugar de "¡es lento!". Además, utilice el perfilador Perfmon y SQL; Por lo poco que nos contaste, el problema podría ser índices incorrectos y luego depende de ti. Una vez que sepa qué es lo que SQL considera lento, podrá averiguar si es el código, el diseño de la base de datos, la E/S lenta, la CPU saturada, etc.
Una vez que sepa cuáles son los cuellos de botella, podrá ver si Win2k8 R2 le ayudará.
Pista: probablemente no.
Pensamiento adicional: ¿por qué estás mirando el 2008 R2 y no el 2012 R2?
Respuesta2
Bien, lo básico:
A menos que hables de 2003 R2 de 32 bits, las diferencias serán mínimas.
Regla uno para las bases de datos: las IO viven y mueren, y las VM normales son totalmente inadecuadas para el trabajo IO pesado. No porque las máquinas virtuales apesten, sino porque la configuración de una máquina virtual es una configuración general. Como conseguir un coche de alquiler estándar e intentar participar en una carrera: los servicios de base de datos SQL a menudo están diseñados ALREDEDOR del subsistema de disco.
Probablemente tenga un subsistema de disco de tamaño insuficiente: intente obtener su latencia (ms/solicitud); si es superior a un solo dígito bajo, afectará el rendimiento de la consulta. A veces eso está bien (si realiza una consulta de informes, básicamente la sobrecargará), pero para cualquier cosa transaccional... También apuesto a que tiene el registro en los mismos discos. Porque en una VM no tienes control real sobre dónde se almacenan las cosas.
El sistema operativo marcará la diferencia, pero será bastante pequeña en comparación con ese hecho. No es que ejecutaría nada en un servidor 2003 en estos días, y despediría a cualquier administrador que actualizara a 2008 R2 en lugar de 2012 R2. Pero puede haber políticas en empresas más grandes que se interpongan en ese camino;)