主文件组已满 SQL Server 2008

woo*_*gie 18 sql-server-2008 sql-server

我有一个大表(约 5000 万行)我正在尝试批量插入 SQL Server,但出现错误:

无法为数据库“I 3 Stroke”中的对象“myDB”分配空间,因为“PRIMARY”文件组已满。通过删除不需要的文件、删除文件组中的对象、向文件组添加其他文件或为文件组中的现有文件设置自动增长来创建磁盘空间。

数据库中有另一个表,大约有 2500 万行。该数据库将仅在一台机器上使用,它旨在挖掘已经存在的数据,并且在任何情况下都不会超过其当前大小。

对于这种情况,解决此问题的最佳方法是什么,这样 SQL Server 就不会抱怨?这个数据库不会暴露给多个用户的解决方案是否重要?

小智 19

按着这些次序:

  1. 确定要向数据库存储分配添加多少空间:
    1. 打开 Windows 资源管理器
    2. 右键单击您的数据库文件所在的磁盘驱动器
    3. 选择属性
    4. 检查有多少可用磁盘空间并决定要为数据库分配多少磁盘空间
      建议: 如果将数据库文件与操作系统放在同一磁盘上,则至少留出 20% 的磁盘空间{子建议:Don不要这样做!将您的数据重建/迁移到它自己的磁盘;您在 I/O 上自欺欺人。}并为纯数据磁盘留出至少 8%;这些数字是我认为实际百分比建议的估计值是。
  2. 更新数据库的存储分配。
    1. 打开 SSMS
    2. 单击“查看”选项卡
    3. 选择“对象资源管理器”
    4. 展开“数据库”文件夹
    5. 右键单击您尝试批量插入的数据库
    6. 选择“属性”
    7. 单击属性窗口左侧“选择页面”区域中的“文件”列表选项
    8. 找到“文件组”为“PRIMARY”的“数据库文件”行
    9. 将要添加到数据库分配的任何兆字节数添加到“初始大小 (MB)”数字
    10. 点击“确定”
      当你在这里时,你可能还想考虑你的“自动增长”值。

您希望尽可能多地为数据库分配存储空间。如果空间不足,您将在不开启自动增长的情况下收到此错误,如果开启了自动增长,则每次必须自动增长时都会对性能造成影响。如果您只是磁盘空间不足,那么这就是您的答案,您需要更大的磁盘。


小智 17

Express Edition 2014 的每个数据库限制为 10 GB。如果数据库的自动增长达到该点,SQL Server 会抛出(模糊?)错误消息,而不是提及许可证限制。可能有足够的磁盘空间,但您仍会看到此消息。

如果设计允许的补救措施:在此许可下使用多个数据库。