使用 SQL Server Compact 与专用 SQL Server 数据库的缺点

Posted

技术标签:

【中文标题】使用 SQL Server Compact 与专用 SQL Server 数据库的缺点【英文标题】:Disadvantages of using SQL Server Compact versus dedicated SQL Server database 【发布时间】:2012-06-28 10:34:23 【问题描述】:

我想知道使用 SQL Server Compact 数据库 (.sdf) 和完整的数据库(例如 SQL Server Express)之间的主要区别是什么?

是否存在任何重大的性能问题,如果有,紧凑型数据库在开始注意到这一点之前可以达到多大?

在开始项目时,我发现使用紧凑型数据库是一种简单、直接且干净的解决方案,我什么时候应该转换并转移到专用数据库?

【问题讨论】:

【参考方案1】:

让我们试试:

最大 2 GB 文件大小 没有存储过程、触发器等 没有进程,但已加载到您的 AppDomain 据我所知,没有基于成本的优化器或查询计划 缺乏多个用户同时访问

这里的大问题是,CE 只是您系统上的一个文件,您可以通过使用 dll 的简单 InApp 调用来访问。就是这样,在许多情况下这已经足够了。很多人会说,你可以稍后切换到 SQLS,但我不这么认为。这是一个完全不同的世界! CE在我眼里是单品。

请记住,当您不想发布应用程序时,您需要部署 CE-DLL!

【讨论】:

很棒的清单。我要补充一点,SQL Server Compact 没有任何内存缓存,因此所有查询一直都在磁盘上。使用 SQL Server Express,热数据会保留在内存中,这可以显着加快查询速度,尤其是在经常运行查询的情况下。 实际上每个数据库最多 4 GB,并且有一个基于成本的查询处理器和查询计划。还有用于“避免”查询处理器的 API【参考方案2】:

在这里查看我的比较表:http://erikej.blogspot.dk/2011/01/comparison-of-sql-server-compact-4-and.html

【讨论】:

【参考方案3】:

SQL Compact 不支持存储过程。您直接在代码中编写所有查询。 这足以让我选择 SQL Express。现在,我们还可以选择 LocalDB 来简化部署场景。

【讨论】:

以上是关于使用 SQL Server Compact 与专用 SQL Server 数据库的缺点的主要内容,如果未能解决你的问题,请参考以下文章

如何将 SQL Server Compact 3.5 与实体框架一起使用

将 SQL Server Compact 4.0.0.1 与 Entity Framework 4.3 一起使用

无法让 sql server compact 3.5 / 4 与 ASP .NET MVC 2 一起使用

LINQ2SQL 与 MS SQL Server Compact 3.5 SP2:BadImageFormatException

使用 C# 应用程序部署 SQL Server Compact

SQL Server Compact Edition(从外部连接连接)