如何面对 SQL Server Express 2008 中的数据库限制问题?

Posted

技术标签:

【中文标题】如何面对 SQL Server Express 2008 中的数据库限制问题?【英文标题】:how to face Database limitation Issue in SQL Sever Express 2008? 【发布时间】:2011-08-04 17:29:28 【问题描述】:

我决定使用 SQL server Express 2008 开发 VB.net 应用程序,但微软表示:

他们限制每个 DB 4 GB 大小!

所以我正在为单用户台式电脑开发我的应用程序,那么当数据库达到最大大小时我该怎么办?

当数据库大小达到最大大小时,创建一个新的数据库并允许我的 vb.net 应用程序与两个数据库一起工作是一件好事吗?

【问题讨论】:

最好的方法,也是技术上最简单的方法,是使用完整版的 SQL。顺便说一句,除非您在数据库中存储大量二进制文件数据,否则 4GB 将持续很长时间。 SQL Server Express 2008 R2 supports 10GB storage, and 1 GB ram usage 【参考方案1】:

关于免费版 SQL Server 的 4GB 限制,我认为您的选择:

1) 清除不必要的旧数据 2) 破解应用程序以使用多个数据库(这甚至可以在单台电脑上工作吗?) 3) 破解您的应用程序以根据需要将项目移至数据文件并移出数据库 4) 为正确版本的 SQL Server 付费 5)去mysql或类似的东西

【讨论】:

同意。数据库切换让我觉得有问题(哪条记录在哪里?)。对于设计合理的数据库,大多数(简单)最终用户应用程序不太可能超过 4GB。 请注意“这甚至可以在单台电脑上运行吗?” - 肯定会的;应用程序只需要知道在哪里可以找到哪些数据(例如,不同数据库中的不同表) @Tao,我没试过,你呢?所以我不确定微软是如何强制执行的。是在 pc 上运行的每个数据库,还是在该 pc 上运行的所有数据库的总和?我能找到的文档很模糊。 @KM:我没有亲自尝试过,但其他消息来源(例如***.com/questions/1169634/…)声称这是每个数据库的限制,并且引用的 MSDN 文档看起来很清楚。跨度> (更可靠的来源,但仍然没有明确的参考:***.com/questions/955926/sql-server-express-4gb-limit)【参考方案2】:

SQL Server 2008 R2 Express 的大小限制增加到 10 GB,所以如果您刚开始一个新项目,您应该使用 2008 R2。

【讨论】:

【参考方案3】:

尝试免费工具并没有错。我建议您重新设计您的应用程序以使用多个数据库。

1) 创建一个新表用于存储多个数据库的设置数据

2) 存储在该表中的内容包括:数据库总数、每个数据库的连接字符串等等。

考虑将每个表存储在单独的数据库中(在适当的情况下)

【讨论】:

【参考方案4】:

如果您希望超过 4GB(您确定吗?),那么一些选项可能包括...

    将旧数据归档到单独的数据库中 不要使用 sql-server express - 使用可以增长的标准版本。

【讨论】:

以上是关于如何面对 SQL Server Express 2008 中的数据库限制问题?的主要内容,如果未能解决你的问题,请参考以下文章

您如何使用 SQL Server CE 和 SQL Server 2008 Express?

如何将远程 SQL Server Express 数据库的部分副本复制到本地 SQL Server Express 数据库?

如何从 C# 代码将 SQL Server CE 迁移到 SQL Server 2012 Express

我们如何使用 Mycrosoft Sync Framework 2.0 推迟将 SQL Express DB 作为客户端和 SQL Server 作为服务器的冲突解决

如何从 SQL Server DB 创建 SQL Server Express DB

如何连接到 SQL Server 2008 Express 的本地实例