El 20 de febrero de 2013 a las 17:27 Javier Garay <[email protected]> escribió: > Tengo la siguiente pregunta, pero no antes sin argumentar. > > Tenemos una base de datos en la empresa que pesa 120 GB. Corre sobre un > servidor windows 2003 con SQL Server 2005 y en ocasiones es casi imposible > trabajar, sobre todo en días específicos cuando se realizan miles de > consultas por hora.
Antes de pensar en cambiar algo (hw o sw) debes averiguar por qué tu BD no tiene el desempeño que esperas/necesitas y que alternativas de solución tienes. Algunas posibles causas de lentitud en la BD: - Consultas mal hechas / poco optimas. Es típico de los programadores no considerar refinar sus consultas creyendo que la BD es responsable de optimizar cualquier cosa. - Te faltan índices estratégicos y/o diseñados para las consultas que pueden ser muy pesadas/consumir mucha cpu y/o disco. Me ha tocado ver casos en que un simple indice (dos campos) significa bajar el uso de la cpu del 40% al 4%. - Tienes tu BD virtualizada. Se puede, pero no por eso deja de ser un error (a veces muy grave) - Te falta RAM o tu BD no está usando toda la ram posible. Si tienes algún sistema de monitoreo en la maquina (nagios, zenoss o similar) seria útil tener una estadística de uso de cpu/disco/ram. SQL Server también tiene herramientas de diagnóstico que te permiten determinar si te faltan indices y/o que consultas son las mas pesadas en caso que puedas reescribirlas y/o modificar tu(s) aplicación(es). > Estamos evaluando la posibilidad de migrar todo a una plataforma con un hw > mucho más nuevo y con mayor poder de proceso[...] Mejor HW nunca está de mas, pero antes de cambiar, asegurate que tienes medidas y medios que te permitan comparar desempeño antes y después, al menos para poder comparar que tanta mejora puedes conseguir. > La pregunta es: ¿Valdrá la pena migrar todo una plataforma linux asumiendo > que es un proyecto mucho más costoso y complejo tecnologicamente hablando, > buscando obtener un mejor desempeño/estabilidad en desmedro de la opción > más simple (windows), sin olvidad que el hw será mejorado > significativamente? En lo personal, evito a toda costa tener soluciones M$ (pareciera mas simple a primera vista, pero las complicaciones son mucho peores). Por otro lado, mejor HW no necesariamente significa mejor rendimiento. Todo va a depender de las condiciones que hacen que tu BD actual tenga problemas y lo mas seguro es que el impacto de cambiar el hw no compense otros problemas que te pudieran estar afectando. Mi recomendación: averigua primero por qué tu BD tiene mal rendimiento y luego evalúa si vale la pena el cambio de hw. El cambio de plataforma (sobretodo si es a Linux+postgresql / oracle) deberías considerarlo una vez que tengas resuelto tu problema actual y sólo si representa una ventaja, no sea que cambies un servidor MSSQL lento por un servidor Oracle/PostgreSQL lento... Saludos -- DOCUMENTO PUBLICO

