【问题标题】:SQL Server 2008 error - cannot allocate space for objectSQL Server 2008 错误 - 无法为对象分配空间
【发布时间】:2014-03-11 13:12:58
【问题描述】:

我使用的是 SQL Server 2008 Express。

我的数据库的属性说数据库大小是 4GB。

我的数据库有 2 个主表,每个表大约 2GB。

我在尝试插入新记录时收到以下错误:

[Microsoft][ODBC SQL Server 驱动程序][SQL Server]
无法为数据库 'Prices_Live' 中的对象 'dbo.Futures_Tick'.'IX_Futures_Tick' 分配空间,因为 'PRIMARY' 文件组已满。通过删除不需要的文件、删除文件组中的对象、向文件组中添加其他文件或为文件组中的现有文件设置自动增长来创建磁盘空间。

我不知道该怎么办。我看不到如何释放主文件组中的空间,因为错误消息告诉我(我什至不确定主文件组是什么)。

我对数据库管理员有点陌生...我只知道基本的 SQL 命令(插入、更新、删除)。

帮忙??

【问题讨论】:

  • 4GB 是 SQL Server 2008 Express 的最大数据库大小。 2008 R2 或 2012 允许 10GB。
  • SQL Server Express 版本有大小限制 - 对于 2008 版本,它是 4 GB。对于单个数据库,您无法超越 - 没有技巧,没有解决方法,没有黑客这样做......
  • 2008 Express 的限制是 4GB,其余的可以在这里找到stackoverflow.com/questions/1169634/…
  • 我愿意删除一些旧数据以腾出一些空间...如果我只是删除 6 个月的记录....这样可以吗?我需要做些什么来减小索引大小吗?

标签: sql sql-server database sql-server-2008


【解决方案1】:

可以肯定的是,SQL Server 2008 Express 仅限于最大 4 GB 的数据库。您需要升级到 2008R2 或更高版本才能克服它。因为 2012 是最新的,除非您有遗留代码,否则应该是最佳选择。

在这里找到它:2012 Express Edition。这是supported upgrade paths

正如@marc_s 在评论中指出的那样,此版本仍限制为 10 GB,因此如果您需要更多,可能需要查看付费版本。

【讨论】:

  • 这只是将限制提高到 10 GB。也可以升级到 full 版本(不是 Express)以真正彻底解决它!
  • @marc_s 确实,但是有价格差异,不是吗? :)
  • 我可以从 2008 Express 升级到 2012 Express 吗??
  • @user1991508 是的,但您可能必须先安装所需的服务包更新 (SP2)。您可以在这里找到您需要的所有信息:Supported Version and Edition Upgrades
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-16
  • 2011-03-11
  • 1970-01-01
  • 2012-01-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多