descargar sql-server entity-framework sql-server-ce sql-server-express sql-server-2012

sql-server - descargar - sql server express



SQL LocalDB vs SQL Server CE (6)

Tengo un pequeño proyecto que tendrá 1 usuario en 1 computadora. La base de datos será bastante pequeña (probablemente menos de 1 mb de datos). Planeo usar WPF y Entity Framework para ese proyecto.

Se me ocurrieron 2 soluciones de base de datos potenciales para mi proyecto: SQL Server CE y SQL Server Express LocalDB (con SQL Server 2012). Nunca he trabajado con ninguno de ellos, estoy más acostumbrado a trabajar con la instalación completa de SQL Server 2008.

También quiero que sea fácil de instalar en el cliente. Idealmente, me gustaría lanzar solo un montón de archivos en una carpeta (junto con mi archivo .exe).

¿Alguien aquí podría sugerirme la mejor tecnología para usar?

¡Gracias!


Además, si es importante ocultar su propiedad intelectual / esquema / datos para que los usuarios puedan acceder fácilmente a ellos, SQL CE puede estar protegido / encriptado con contraseña. SQL Local db se puede abrir fácilmente desde el estudio de gestión.


Depende, pero según sus requisitos (es decir, una cantidad muy pequeña de datos e instalación de XCopy), su única opción es SQL Server Compact, ya que la huella de SQL Compact en el disco es de aproximadamente 18 MB frente a 160 MB con LocalDB, y LocalDB requiere una la instalación del administrador (viene solo como MSI), pero si la compatibilidad con SQL Server es más importante, LocalDB es la mejor opción (como notas de marc_s)


Olvidando todo lo vago "es más fácil", "es más pequeño", "le falta un puñetazo" o "es más ligero" respuestas (sin ofender), creo que uno debe enfocarse en la diferencia principal entre los dos cuando se enfrenta a la elección:

  • LocalDB está fuera de proceso.
  • CE está en proceso.

Ejecutar como parte del proceso de solicitud o no tiene muchas implicaciones que probablemente deberían explorarse en preguntas separadas.

Sin embargo, el más obvio es que si necesita acceder a la base de datos desde varias aplicaciones utilizando un DBMS en proceso (como CE), todas las aplicaciones accederán al archivo de la base de datos directamente con su propio tiempo de CPU. Sincronizarlos es realmente difícil, y darse cuenta de esto ayuda a comprender por qué CE tiene menos funciones (eso y muchas otras cosas).

También tenga en cuenta que si bien puede preocuparse que varios procesos que ejecutan el mismo código CE ocupen más memoria de la necesaria, recuerde que el sistema operativo es lo suficientemente inteligente como para compartir páginas de su caché de páginas entre varios procesos, de modo que uno realmente no es un problema. .

LocalDb es simplemente una forma de administrar una instancia de Express normal de forma automática, y por usuario (no es diferente de SQL Server Express, es lo mismo).


Realmente voy a tener que ir con ErikEJ aquí. No tengo la reputación de votar su respuesta, pero dado su objetivo solicitado, SQL CE es realmente el más rápido de entrada y salida. Muchos de los problemas de comparación que se proporcionan en el enlace proporcionado por marc_s en las "características faltantes" de SQL CE VS LocalDB están mitigados por el uso de EntityFramework (no se admite el procedimiento T-SQL, pero si usa EF, Lambda y LINQ, eso no será posible). realmente ser un problema).


Vea esta página para obtener información sobre por qué se creó LocalDB.

Fue creado específicamente para desarrolladores. Es fácil de instalar, no requiere administración, pero es compatible con otras ediciones de SQL Server en el nivel de API. En este sentido, es como una versión ligera de la edición gratuita de SQL Server Express .

Si bien esto parece similar a SQL Server Compact , existen diferencias:

  • Modo de ejecución: SQL Server Compact es una DLL en proceso, mientras LocalDB se ejecuta como un proceso separado.
  • Uso del disco: todos los binarios de SQL Server Compact ascienden a unos 4 MB, mientras que la instalación de LocalDB requiere 140 MB.
  • Características: SQL Server Compact ofrece una funcionalidad básica de RDBMS como la consulta, mientras que LocalDB proporciona un conjunto mucho más rico de características, incluidos los procedimientos almacenados, los tipos de datos de Geometría y Geografía, etc.

Tal como lo veo, LocalDB se usa a menudo para el desarrollo fuera de línea para garantizar que el código que desarrolle sea 100% compatible con su base de datos de producción de SQL Server.


Vea la presentación Introducción al tiempo de ejecución de la base de datos local de SQL Server Express : ofrece una excelente descripción.

La gran ventaja de LocalDB es que es un verdadero servidor SQL, es una versión especial de SQL Server Express, pero básicamente es compatible con todo lo que el servidor real tiene: tipos de datos espaciales, procedimientos almacenados, lo que sea.

SQL Server Compact Edition, por otro lado, es una versión muy reducida, muchas características y tipos de datos no son compatibles. Es más pequeño y más "ágil", pero le falta mucho poder.

Personalmente elegiría SQL Server Express con el tiempo de ejecución LocalDB sobre SQL Server CE 4, a menos que necesite específicamente el pequeño tamaño de SQL Server CE (por ejemplo, en un dispositivo móvil).

También vea una comparación entre SQL Server CE 3.5, CE 4.0, SQL Server Express 2008 R2 y SQL Server 2012 Express LocalDB en el excelente sitio web Everything SQL Server Compact de ErikEJ.