SQLite vs SQL Server
Serait toute une, merci de différencier ce qui est le mieux pour l'utilisation de SQLite ou SQL Server? J'ai été en utilisant XML en tant que fichier de stockage de données, d'AJOUTER, supprimer , mettre à jour.. quelqu'un a suggéré d'utiliser SQLite pour un fonctionnement rapide, mais je ne suis pas familier avec SQLite je sais SQL Server.
- C'est aussi un peu une fausse comparaison. Êtes-vous en comparant db-dans-un-seul-fichier des solutions (par exemple, SQLite, MS Access) par rapport à "réel" des Sgbdr (par exemple, Oracle, SQLServer, PostgreSQL, MySQL)? Êtes-vous juste de comparer des choses "SQL" dans le nom? 😉 Il y a tellement de critères que vous êtes ignorant ici (open source par rapport commercial--SQLServer est commercial, par exemple, alors que SQLite est open source); tapé colonnes versus non typée colonnes (SQLite colonnes sont essentiellement non typé); évolutive rapport à petite échelle; etc.
- si c'est pour votre usage personnel ou s'écrit dans la base de données ne sont pas faites simultanément par plusieurs utilisateurs, et si la sécurité des données n'est pas une préoccupation, SQLite sera sans doute beau, même avec des quantités gigantesques de données. Vous pouvez penser de SQLite comme un substitut pour le MS-Access "JET" du moteur de données; il n'est pas un véritable client-serveur de moteur de base de données comme sql server ou Oracle.
- Vous pourriez envisager de la persistance des objets ayant. J'ai été en utilisant cette technique et il fonctionne très bien. Quand j'ai essayé de remplacer le persisté dynamique des objets avec SQLite, j'ai trouvé SQLite être beaucoup plus lent, à tel point que j'ai eu à abandonner purement et simplement et de revenir à la persisté dynamique des objets.
Vous devez vous connecter pour publier un commentaire.
SQLite est une grande base de données intégrée que vous déployez avec votre demande. Si vous écrivez une application distribuée que les clients vont l'installer, puis SQLite qui a le gros avantage de n'avoir aucun programme d'installation distinct ou d'entretien--c'est juste une seule dll qui est déployé le long avec le reste de votre application.
SQLite fonctionne également dans le processus et réduit beaucoup de la surcharge d'une base de données apporte--toutes les données sont mises en cache et interrogé dans le processus.
SQLite s'intègre avec votre .NET application mieux que SQL server. Vous pouvez écrire une fonction personnalisée dans n'importe quelle .NET de la langue qui s'exécutent à l'intérieur du moteur SQLite, mais encore au sein de votre application du processus appelant et de l'espace et peut donc appel à votre candidature pour intégrer des données supplémentaires ou effectuer des actions lors de l'exécution d'une requête. Cette capacité très inhabituelle rend certaines actions nettement plus facile.
SQLite est généralement beaucoup plus rapide que SQL Server.
Cependant, SQLite ne supporte qu'un seul écrivain à un moment (ce qui signifie l'exécution d'une transaction individuelle). SQLite verrouille l'ensemble de la base de données quand il a besoin d'un verrou (lecture ou écriture) et seulement un écrivain peut contenir un verrou en écriture à un moment. En raison de sa vitesse, ce n'est pas réellement un problème pour de faible à modérée de la taille des applications, mais si vous avez un volume plus élevé de l'écrit (des centaines par seconde) alors qu'il pourrait devenir un goulot d'étranglement. Il y a un certain nombre de solutions possibles, comme la séparation de la base de données des données dans les différentes bases de données et la mise en cache de l'écrit à une file d'attente et de les écrire de manière asynchrone. Toutefois, si votre application est confronté à ces exigences d'utilisation et n'a pas déjà été écrit pour SQLite, alors il est préférable d'utiliser autre chose comme SQL Server qui est plus fine de verrouillage.
Mise à JOUR: SQLite 3.7.0 ajout d'un nouveau journal en mode dit d'Écrire à l'Avance de Verrouillage qui prend en charge simultanée de la lecture lors de l'écriture. Dans notre multi-pricess de contention de test, le moment est passé de 110 secondes à 8 secondes pour exactement la même séquence de contentieux des lectures/écritures.
Les deux sont dans les différents ligue tout à fait. L'un est construit pour des données d'entreprise, la gestion et l'autre est pour les appareils mobiles (intégré ou d'un serveur moins l'environnement). Si SQLite déploiements peuvent contenir des données de plusieurs centaines de GBs, mais ce n'est pas ce qu'il est construit pour.
Mise à jour: pour tenir compte des dernières question:
Veuillez lire ce blog sur SQLite. J'espère que feriez-vous aider et vous permettre d'accéder à de vous rediriger vers des ressources par programme d'accès SQLite à partir .net.