2009-09-03 44 views
15

¿Alguien ha usado las tres bases de datos? ¿Cuáles son sus experiencias con ellos? PostgreSQL parece bastante tentador para un proyecto, pero tengo curiosidad por saber más sobre él (somos una tienda .NET). También he escuchado que muchas personas están satisfechas con DB2.DB2 vs PostgreSQL vs SQL Server

Respuesta

5

Si es una tienda .NET, y está utilizando una base de datos pequeña (es decir, Sql Server Express) o tiene el dinero para el servidor SQL completo, úselo. SQL Server funcionará mejor que PostgreSQL para la mayoría de las acciones, y casi lo mismo que DB2.

PostgreSQL es fantástico si necesita soporte multiplataforma, está basado en Linux o necesita un producto gratuito que no sea Microsoft.

No he utilizado DB2 en más de 10 años, aparte de ejecutar una prueba de rendimiento interna vs. otras bases de datos (donde era casi lo mismo para una base de datos transaccional como Oracle/SQL Server, donde eran mejores que MySQL , PostgreSQL, etc.).

2

Si usted es un .net, quédese con SQL Server.

El uso de cualquier otra plataforma de base de datos requeriría que fuera de Windows sacara lo mejor de él. En Windows, SQL Server es el rey simplemente porque MS posee tanto OS como SQL Server (como Oracle/Red Hat).

+3

Quizás Oracle/Sun/Solaris (software/hardware/OS), pero no Oracle/RedHat, Oracle no es dueño de RedHat. –

+0

@Pascal Thivent: en el momento en que publiqué, Oracle no era dueño de Sun. Y Oracle ha preferido Linux http://www.orafaq.com/wiki/Linux. – gbn

+2

El hecho de que el servidor SQL solo funcione en Windows, no significa que sea el mejor sobre ese sistema operativo. Eche un vistazo al TPC para ver los mejores rendimientos, y podemos ver algunos Oracle y DB2 sobre Windows. Al mismo tiempo, Oracle puede funcionar bien en AIX, por lo que su criterio no es convincente. http://www.tpc.org/tpch/results/tpch_perf_results.asp?resulttype=noncluster&version=2%¤cyID=0 – AngocA

8

Como persona de DB2, puedo ofrecerle algunos detalles sobre lo que podría esperar al ejecutar DB2 para Windows y desarrollar aplicaciones .NET para él. La versión actual, 9.7, fue lanzado en junio de 2009.

  • controladores y soporte de API para casi cualquier lenguaje de programación de Windows y el IDE, incluyendo .NET y Visual Studio extensiones
  • Un sin costo, listo para la producción motor de base de datos (Express-C) que no tiene límite de tamaño de base de datos y es el menos restringido en comparación con Oracle Express y SQL Server Express
  • Motor de base de datos autoajustable para Windows que maneja automáticamente el tamaño de varios almacenamientos intermedios de memoria que son críticos para un buen rendimiento
  • Soporte sólido para XML como un tipo de datos nativo, manejado por su propio motor de consulta dedicado que está optimizado para la naturaleza jerárquica de XML. Las consultas pueden acceder a cualquier combinación de datos XML y tabulares con cualquier combinación de expresiones SQL y XQuery
+0

Fred: Mis clientes están buscando una máquina con más de 2 GB de RAM. Creo que esta es la barrera con la edición existente de DB2-Express C? En segundo lugar, la ayuda de DB2 en las comunidades no llega tan rápido en comparación con SQL Server y Oracle. – RKh

+0

DB2 Express-C puede ejecutarse en servidores con más de 2 GB de RAM, pero la instancia de DB2 solo podrá usar hasta 2 GB de RAM disponible. Este límite se puede duplicar actualizando a FTL, también permite el uso de más núcleos de CPU y la replicación en una base de datos DB2 local o remota. DB2 tiene una comunidad próspera en varias áreas, incluida la lista de correo DB2-L en IDUG.org y presentaciones de conferencias técnicas anteriores. IBM developerWorks es otro recurso excelente para explorar características específicas que el manual puede no explicar completamente. –

+0

Mencione la posibilidad de utilizar rutinas .NET en DB2 LUW y le devolveré su respuesta. –

16

Trabajo en una organización muy grande que usa DB2 principalmente en Linux (Red Hat). Tenemos varias bases de datos grandes y hemos investigado el cambio a otras soluciones RDBMS, como Oracle y SQL Server. Hice un montón de trabajo en el servidor SQL al final de eso.

Encontramos que el servidor SQL funciona mucho mejor y requiere menos ajuste que DB2, especialmente cuando las tablas tienen un tamaño superior a los registros de 1M. HADR también es difícil y voluminoso, por decir lo menos.

Encontramos muchas diferencias entre DB2 y SQL Server, y demasiadas para enumerarlas aquí. Fui responsable de hacer una gran parte de la ingeniería detrás de la conversión de código de una plataforma a otra, y no puedo decir que haya encontrado algo en DB2 que sea superior al servidor SQL, pero encontré muchas cosas que me gustaban más del servidor SQL. Aquí hay algunos fuera de mi cabeza:

  • Mejor selección de tipos de datos en SQL Server, como MONEY y SMALL MONEY.
  • Codificación de caracteres mixtos en SQL Server. Algunas columnas pueden ser ANSI y otras UNICODE (char y nchar, respectivamente). Configurarlo en DB2 no es sencillo ni fácil.
  • Mejores herramientas en el servidor SQL, principalmente SSIS para ETL (A diferencia de la IBM Data Stage, que cuesta caro).
  • El servidor SQL tiene una sintaxis más indulgente. Por ejemplo, no necesitas punto y coma en todas partes. Tal vez solo una preferencia personal, pero me resultó mucho más fácil codificar en T-SQL.
  • Muchas funciones avanzadas parecen funcionar mejor en el servidor SQL. Por ejemplo, el servidor SQL le permite realizar una compresión a nivel de página, donde DB2 está limitado a la compresión a nivel de fila.
  • Era más fácil de ajustar consultas SQL Server con el IDE SQL Server

Hay más, pero la verdad es que sugieren que cualquier persona que esté considerando una sobre la otra debe establecer tanto para pasar algún tiempo trabajando con tanto sistemas. En este momento, parece que el servidor SQL es una mejor solución general, pero DB2 puede algún día llevarse la corona.

Por último, cuando se trata de almacenamiento de datos, SQL, SSIS y SSAS constituyen una solución mucho mejor que InfoSphere, DataStage y DB2. Podría escribir un documento técnico sobre él, pero mi sugerencia aquí es configurarlo tú mismo y pasar una semana o jugar con cada solución. La solución de Microsoft aquí fue más rápida y más barata que la de IBM. No sé de ninguna otra base sobre la cual tomar una decisión.

La plataforma no debería ser un problema ya que las bases de datos generalmente se ejecutan en sus propias máquinas, pero siempre hay "¡no microsoft!" y "no linux!" tiendas alrededor. Es una pena, en serio. Yo recomendaría el servidor SQL.

+0

Agregue a este debate: la gestión de DB2 es un PITA real (y no me refiero al flatbread mediterráneo) en comparación con SQLServer. Los mensajes de error de SQLServer son claros y las operaciones son simples de realizar. La actualización de un entorno de prueba a partir de una copia de seguridad de la producción requiere seis clics del mouse, en comparación con la navegación de la sintaxis arcana de los comandos db2 restore y db2 Rollforward. Recuerde contar el costo continuo de las personas para administrar las bases de datos –

2

Evita Microsoft como la peste. Siempre presione para usar PostgreSql incluso en Windows, mejor soporte para el desarrollo de aplicaciones, p. Java/Python y todavía tiene un buen soporte en .NET. También, por supuesto, es completamente gratuito, que teniendo en cuenta las tarifas de licencia actuales para SQL Server no es nada para ser olido, incluso si usted es una empresa multimillonaria.

Por el costo de 1 licencia de SQL Server, usted ahorrará £ 30,000 (digamos $ 40,000) o más - compre mejor hardware para ejecutar Postgres y aún tenga un beneficio neto.

En lo que respecta al rendimiento, realmente, si se trata de un problema tan importante, no deberíamos usar DB2, SQL Server o Postgres de todos modos. La diferencia entre los tres es insignificante para sus propósitos de diseño.

Editar: En la integración .NET, en realidad esto es realmente pobre en SQL Server de todos modos, tiene más funciones que Postgres/DB2, pero en realidad no es muy ventajoso sobre SSIS o procedimientos almacenados. Pude ver el caso de uso principal en mi trabajo como el acceso a las clases y funciones desde un .dll de CLR, pero luego está implementando la lógica en la base de datos que puede o no ser una buena idea para usted.

+1

Realmente en desacuerdo con la integración .Net. Utilizo funciones CLR analíticas (de riesgo) en el archivo db, que tardan 2 segundos en encontrar resultados en más de 10 millones de filas. Hacer eso en tsql o fuera de SQL llevaría de minutos a horas. Para funciones computacionalmente intensivas, el aumento de rendimiento de .net dentro de sql es enorme. Para el análisis de big data SQL creo que es el mejor. – gjvdkamp