Pregunta

Mi compañía enfrenta la decisión de comprar SQL Server 2012 Denali o SQL Server 2008 R2 para un nuevo servidor de base de datos. Estoy buscando razones objetivas para elegir una sobre la otra.

Nuestras necesidades:

  • Edición estándar (por razones financieras y falta de necesidad de características empresariales)
  • Carga de trabajo OLTP (esto significa que no necesitamos las nuevas funciones de ventanas y los índices de la tienda de columnas)
  • Tamaño de la base de datos de 10-100 GB
  • No se necesitan características de inteligencia empresarial. Solo se requiere el motor relacional
  • Reflejo de la base de datos sincrónica

Actualmente, las siguientes razones son conocidas:

SQL Server 2012 Denali

  • Versión más nueva disponible

SQL Server 2008 R2

  • Tecnología probada

Parece que no puedo encontrar muchas razones técnicas para preferir una sobre la otra. Básicamente, se trata de elegir tecnología probada que se ejecute con éxito frente a la versión más nueva y mejor disponible.

¿Cuáles son las razones objetivas para tomar la decisión?

¿Fue útil?

Solución

Todos están entusiasmados con Alwayson y Columnstore, pero muchos de los beneficios de SQL Server 2012 no son exclusivos de ediciones de alta gama. No quiero sonar como un portavoz, pero he dado muchas presentaciones en SQL Server 2012 y creo que tiene mucho que ofrecer en cualquier edición que se adapte a usted.

  • Bases de datos parcialmente contenidas que le permiten mover bases de datos entre servidores o entornos con unos pocos grilletes menos (a saber, inicios de sesión a nivel de servidor y dependencias de recopilación de servidores: las versiones futuras manejarán elementos de espinas como servidores vinculados y trabajos de agente).

  • Estudio de gestión ahora es una herramienta mucho mejor, alineada con Visual Studio. Intellisense es mejor y un montón de otras características facilitan la edición. Ahora, por supuesto, puede tener 2008 R2 en su servidor y usar la versión 2012 de SSMS, pero no estoy seguro de cómo funciona en cuanto a licencias, y algunas tiendas no quieren versiones mixtas (prefiero tener las herramientas más recientes en Mi estación de trabajo incluso para administrar los servidores de nivel descendente). Hice un blog sobre los cambios desde el principio, cuando todavía había errores, así que ignore los negativos ya que la mayoría o todos están arreglados a partir de RTM. Ahora me estremezco cuando tengo que usar una versión anterior de SSMS.

  • Mejoras de metadatos Permitirle inspeccionar los resultados de los objetos y las consultas ad hoc, y también permitirle dar mejor forma a la salida de consultas.

  • Roles de servidor personalizados Permitirle definir un conjunto mucho más granular de permisos para los usuarios a un nivel de roles en lugar de otorgar/revocar uno por uno, o simplemente ceder a la complejidad y darles un sistema.

  • Fileteable le permite administrar una carpeta como una tabla de documentos, pero aún tiene un control externo sobre el contenido (así que imagine poder hacer esto con T-SQL, e imagine lo difícil que sería hacer en CMD o PowerShell: UPDATE C:\Docs\*.* SET ReadOnly = 1 WHERE Author = 'Bob' AND Created < '20100101';) ... Piense en que FileStream se encuentra con Winfs y obtiene algo de usabilidad para arrancar.

  • Mejoras de T-SQL Permitirle hacer muchas cosas que fueron un dolor en versiones anteriores:

    • THROW (Piense en ello como Re-Raise)
    • OFFSET / FETCH (Paging más simple, estándar de ANSI)
    • SEQUENCE (Mecanismo de identidad centralizado, como en Oracle)
    • Mejoras de ventanas/enmarcados (varias cosas aquí, como el rendimiento increíble de Totales de carrera)
    • IIF() / CHOOSE() / CONCAT() / EOMONTH()
    • Constructores de fecha/hora (por ejemplo DATETIMEFROMPARTS) Similar a DateSerial en VB
    • PARSE() / FORMAT() - Como sus homólogos .NET
    • TRY_CONVERT() / TRY_PARSE() - devolver NULL si CONVERT / PARSE fallar
  • Eventos extendidos Tiene una interfaz de usuario mejorada para la configuración / visualización, y finalmente cubre completamente la funcionalidad de traza / auditoría (incluido un seguimiento de causalidad mucho mejor).

  • Muchos DMV nuevos, Procedimientos del sistema y mejoras del plan para el diagnóstico y la resolución de problemas de rendimiento. También eche un vistazo a lo que CSS está llamando "La grabadora de caja negra."

  • Núcleo de servidor Le permite ejecutar en un servidor mínimo desnudo sin todos los componentes de la interfaz de usuario (el área de superficie más pequeña significa que es más seguro y un mantenimiento reducido ya que menos partes del sistema operativo están sujetos a Windows Update).

  • Búsqueda de texto completo Obtiene algunas mejoras importantes del rendimiento subyacente, así como una búsqueda semántica (piense en palabras clave) y proximidad personalizable / cercano.

  • El asombro ya no es compatible, lo que significa que su instancia de SQL Server en X86 con 32 GB de RAM solo podrá usar 4GB, por lo que finalmente tendrá motivación para salir de su antiguo hardware de 32 bits.

Otros consejos

Los siguientes son solo algunos ejemplos sobre "evidencia real o en contra de la confiabilidad en la primera versión de cualquier versión nueva", según lo solicitado. Esto no pretende ser un análisis completo, sino más bien una sugerencia sobre lo que podría querer investigar.

Puede buscar en Google "Lista de problemas que se solucionan por SQL Server 2008 Service Pack 1" y "Lista de problemas que se solucionan por SQL Server 2008 Service Pack 3" en el sitio web de MSDN. Compare el número y la gravedad de los problemas en ambas listas. En mi opinión, la primera lista es más larga, y tiene más elementos que podrían arruinar mi día, como:

  • Mensaje de error Cuando se conecta a una instancia nombrada de SQL Server en una computadora cliente que ejecuta Windows Vista o Windows Server 2008
  • El agente del lector de registros omite algunas transacciones cuando el agente del lector de registros se ejecuta para replicar las transacciones
  • Mensaje de error Cuando ejecuta una consulta que involucra una operación de unión exterior en SQL Server 2008
  • Mensaje de error Cuando realiza una actualización o una operación de eliminación en una tabla que no tiene un índice agrupado creado en SQL Server 2008
  • Una consulta que utiliza parámetros y la opción Recompilar devuelve resultados incorrectos cuando ejecuta la consulta en múltiples conexiones simultáneamente en SQL Server 2008

Profundamos en un nivel más y consideremos solo un comando, la fusión. Fue lanzado como parte de SQL 2008 con varios problemas, descritos en los siguientes enlaces:

Como tal, en el momento del lanzamiento original de SQL 2008, decidí no usar Merge. Estoy usando Merge mucho ahora, en 2008 R2, y creo que es una característica realmente excelente.

Editar: Aquí está la lista de defectos en SQL 2012 que se solucionaron recientemente. Espero eso ayude.

Otra edición: He elegido fusionar para un análisis más detallado, porque es una mejora muy importante. De hecho, es un paso importante para ponerse al día con Oracle, y mejora nuestra productividad. Como tal, Merge se ha comercializado mucho en el momento del lanzamiento de SQL 2008. Sin embargo, no estaba completamente listo para usar en sistemas de producción serios cuando se lanzó originalmente, y no había una manera fácil de saberlo de las presentaciones/artículos/publicaciones de blog y demás.

Del mismo modo, el aislamiento de instantáneas es una característica nueva y increíble que solo funciona, pero invocar las UDF escalares en restricciones de cheque no funciona en todos los casos y, como tal, no debe usarse en la producción cuando necesitamos integridad de datos. Sin embargo, ambas características nuevas se recomendaron en las presentaciones "Lo que es nuevo en SQL XXXX", así como en libros, artículos, etc., y con un entusiasmo similar.

Necesitamos tener mucho cuidado con las nuevas características: no todas las serán útiles/confiables/performadores.

Un punto que no se ha mencionado aquí es completamente irrelevante para el conjunto de características. Si está haciendo una nueva compilación, puede posponer una actualización de la base de datos durante un poco más de tiempo, por lo que esto ahorrará en los costos de migración.

Para un proyecto de Greenfield, tiene un espacio de respiración para trabajar alrededor de los errores y criarlos con el proveedor si aparecen, por lo que no es un proceso completamente no controlado. Estuve involucrado en uno de los primeros proyectos de almacén de datos en SQL Server 2005 justo cuando fue para RTM y nos salimos con la suya.

Si el conjunto de características de 2008R2 hará lo que desea, la decisión se debe a algún riesgo de errores/soluciones versus el valor de posponer la necesidad de actualizar y guardar un ciclo de actualización.

Cuando está comprando NUEVO, la elección es muy diferente a cuando está considerando la actualización. Comprar nuevo Es mi creencia que siempre debe comprar la versión más nueva que pueda obtener. La versión 2008 ya no será compatible con mucho antes de la versión 2012. Es mejor comenzar nuevo con lo último, ya que usará este backend durante mucho tiempo.

En cuanto a la necesidad del primer paquete de servicio, saldrá antes de que se dé cuenta y, dado que está haciendo un nuevo desarrollo, los problemas que soluciona probablemente no le afectarán tanto una base de datos heredadas con millones de registros.

Ahora, si solo está obteniendo un nuevo servidor pero pone una base de datos anterior, entonces la pregunta es de qué está actualizando. Si la base de datos ya es una base de datos 2008, será significativamente menos riesgoso usar la misma versión. Si está actualizando, verifique si puede actualizar directamente a 2012 desde su versión.

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