如何面对 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 作为服务器的冲突解决