Grimpi IT Blog

octubre 24, 2008

SQLite vs SQL Server Compact Edition Parte 1

Filed under: SQL Server CE, SQLite — Etiquetas: , , — grimpi @ 11:11 am

Recientemente tuvimos que desarrollar un sistema que debía funcionar con una base de datos embebida. Hay varias soluciones en el mercado, SQLite y SQL Server Compact Edition son de las más populares. (También exista VistaDB, pero es paga).
Cuales son las ventas y desventajas de usar una base u otra?

SQLite:
Pros:

  • Es Open Source
  • Es multiplataforma (Funciona en Linux, Windows, MacOs)
  • Es ultra liviana y rápida. Instalación super sencilla, es un solo archivo.
  • Tiene Triggers y Vistas
  • Se puede agregar externamente User Defined Functions (UDF)
  • Soporta operaciones en memoria.
  • Posibilidad de usar 2 o más bases de datos en la misma consulta (ATTACH)

Contras:

  • Cuando se hace una operación de escritura, se bloquea la base.
  • Es typeless. Si bien se pueden definir tipos de datos, no hace ningún tipo de validación a la hora de insertar o actualizar datos.
  • No tiene Foreign Keys (se pueden emular con triggers)
  • No tiene un campo datetime (tiene un date y un time, pero no un campo que una ambos. Hay que usar varchar para estos casos).
  • No tiene ningún mecanismo de replicación y sincronización de datos.
  • El comando ALTER TABLE está limitado a RENAME TABLE y ADD COLUMN
  • No soporta ni RIGHT JOIN ni FULL JOIN.
  • No tiene Nested transactions (Transacciones en cadena)
  • No soporta INFORMATION_SCHEMA (usa sus propias funciones para inspeccionar la metadata).
  • Admite campos autonumericos, pero no permite setear el valor inicial del campo ni el valor del salto de incremento (Identity seed e Identity Increment en SQL Server, muy utiles a la hora de replicar).

SQL Server Compact Edition
Pros:

  • Es gratis (pero no Open Source)
  • Está integrado con el framework de sincronización, Sync Framework for ADO.NET. Lo que permite sincronizar datos entre una base embebida y una base SQL Server de manera casi trivial.
  • Tiene mecanismo de replicación nativo.
  • Hace validación de tipos y tiene mayor cantidad de tipos de datos que SQLite.
  • Se puede usar como IDE Visual Studio 2005/2008 o Management Studio de SQL Server
  • Soporta INFORMATION_SCHEMA

Contras:

  • Cuando se hace una operación de escritura, se bloquea la tabla.
  • No soporta operaciones en memoria.
  • No es multiplataforma (Solo funciona en Windows)
  • No tiene ni triggers ni vistas.
  • No soporta User Defined Functions (UDF)
  • No soporta RIGHT JOIN
  • No tiene Nested transactions (Transacciones en cadena)

Crea un blog o un sitio web gratuitos con WordPress.com.