29 votes

SQL LocalDB vs SQL Server CE

J'ai un petit projet qui va avoir 1 utilisateur sur 1 ordinateur. La base de données sera plutôt de petite taille (moins de 1 mo de données). J'ai l'intention d'utiliser WPF et Entity Framework pour ce projet.

Je suis venu avec 2 potentiel de base de données solutions pour mon projet : SQL Server CE et SQL Server Express LocalDB (avec SQL Server 2012). Je n'ai jamais travaillé avec l'un de ces, je suis plus habitué à travailler avec toute installation de SQL Server 2008.

Je veux aussi qu'il soit facile à installer sur le client. Idéalement, je voudrais juste jeter un tas de fichiers sur un dossier (avec mon .exe file).

Alors, quelqu'un ici pourrait me suggérer le meilleur de la technologie à utiliser?

Merci!

38voto

marc_s Points 321990

Voir la présentation de SQL Server Express Locaux DB Runtime présentation - donne une excellente vue d'ensemble.

L'immense avantage de LocalDB, c'est que c'est de la vraie SQL Server - c'est une version de SQL Server Express, mais essentiellement, il prend en charge tout ce que les "vrais" SQL Server a - types de données spatiales, des procédures stockées - vous le nom.

SQL Server Compact Edition d'autre part, c'est très bien version réduite - beaucoup de fonctions et types de données ne sont pas pris en charge. Il est plus petit et plus "agile" - mais il n'a pas beaucoup de punch.

Personnellement, je choisirais SQL Server Express avec les LocalDB d'exécution par rapport à SQL Server CE 4 - sauf si vous avez spécifiquement besoin de la taille minuscule de SQL Server CE (par exemple, sur un appareil mobile).

Voir aussi une comparaison entre SQL Server CE 3.5, CE 4.0, SQL Server Express 2008 R2 et SQL Server 2012 Express LocalDB sur ErikEJ excellent Tout de SQL Server Compact site web.

29voto

ErikEJ Points 14368

Cela dépend, mais en fonction de vos besoins (c'est à dire très petite quantité de données et XCopy installation), votre seule option est de SQL Server Compact, comme l'empreinte de SQL Compact sur le disque est d'environ 18 MO vs 160 MO avec LocalDB, et LocalDB implique un administrateur d'installer (un MSI uniquement) - mais si SQL Server Compact est le plus important, LocalDB est le meilleur choix (comme marc_s notes)

5voto

Matthew Hintzen Points 215

Je vais vraiment avoir t aller avec ErikEJ ici. Je n'ai pas la réputation afin de voter pour sa réponse, mais compte tenu de votre cible SQL CE est vraiment le moyen le plus rapide dans et hors. Beaucoup de la comparaison de questions étant donné le lien fourni par marc_s sur SQL de CE "manque des fonctionnalités" VS LocalDB sont atténués par la vertu de votre aide EntityFramework (Procédure T-SQL n'est pas pris en charge, mais si vous utilisez EF et Lambda et LINQ, qui ne sera pas vraiment un problème).

5voto

tne Points 1452

Oubliant toute la vague "c'est facile", "il est plus petit", "ça manque de punch", ou "c'est léger" réponses (n'en déplaise), je pense que l'on devrait se concentrer sur la principale différence entre les deux lorsqu'ils sont confrontés avec le choix:

  • LocalDB est out-of-process.
  • CE est en cours de processus.

Cours d'exécution dans le cadre du processus de demande ou pas a de nombreuses implications qui devrait probablement être explorées dans des questions distinctes.

Le plus évident est que si vous avez besoin d'accéder à la base de données à partir de plusieurs applications à l'aide d'un processus de SGBD (etd), toutes les demandes d'accès au fichier de base de données directement à l'aide de leur propre cpu-temps. La synchronisation est vraiment dur, et en réalisant cela permet de comprendre pourquoi CE a moins de fonctionnalités et bien d'autres choses).

Notez également que, bien que l'on peut s'inquiéter que de multiples processus exécutent le même code de la CE pourrait prendre plus de mémoire que nécessaire, n'oubliez pas que le système d'exploitation est assez intelligent pour partager des pages de son cache de la page entre plusieurs processus, de sorte que l'on n'est vraiment pas un problème.

LocalDb est tout simplement une façon de gérer une normale Express instance automatiquement, et sur une base par utilisateur (ce n'est pas différente de SQL Server Express, c'est la même chose).

3voto

Amro Points 72743

Voir cette page pour certains arrière-plan derrière pourquoi LocalDB a été créé

Il a été créé spécifiquement pour les développeurs. Il est facile à installer, ne nécessite pas de gestion, pas encore compatible avec les autres éditions de SQL Server au niveau de l'API. À cet égard, il est comme une version allégée de la gratuit de SQL Server Express edition.

Tout cela semble similaire à SQL Server Compact, il existe des différences:

  • Mode d'exécution: SQL Server Compact est un proc DLL, tandis que LocalDB s'exécute comme un processus distinct.
  • L'utilisation du disque: tous les composants de SQL Server Compact binaires sont au nombre de 4MBs, tandis que LocalDB, l'installation se 140MBs.
  • Caractéristiques: SQL Server Compact offre de base des SGBDR fonctionnalités comme l'interrogation, tandis que LocalDB offre un très riche ensemble de fonctionnalités, y compris des Procédures Stockées, la Géométrie et la Géographie des types de données, etc.

La façon dont je le vois, LocalDB est souvent utilisé en mode hors connexion pour s'assurer que le code que vous avez à développer est 100% compatible avec votre production de base de données SQL Server.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X