“PRIMARY”文件组已满。如何增加 SQL Server Express 2017 中的 temdb 大小?

Kir*_*ten 2 sql-server sql-server-express sql-server-2017

当我重新索引特定表时

\n\n
DBCC DBREINDEX(@TableName, \'\',90) \n
Run Code Online (Sandbox Code Playgroud)\n\n

我收到一个错误

\n\n
\n

级别 17,状态 2,过程 aareindex,第 21 行 [批处理起始行 0]\n 无法为对象 \xe2\x80\x98dbo 分配空间。SORT 临时运行存储:\n 数据库 \xe2 中的 422738479742976\xe2\x80\x99 \x80\x98mydatabase\xe2\x80\x99 因为 \xe2\x80\x98PRIMARY\xe2\x80\x99\n 文件组已满。通过删除不需要的文件、删除文件组中的对象、向文件组添加其他文件或为文件组中的现有文件设置自动增长来创建磁盘空间。

\n
\n\n

所以我想尝试增加 TempDb 的大小

\n\n

我可以通过查看数据库属性使用 SSMS 查看大小,但我不知道如何设置它。

\n\n

[更新]

\n\n
select type_desc, name, size, max_size, growth from tempdb.sys.database_files\n
Run Code Online (Sandbox Code Playgroud)\n\n

回报

\n\n

这些结果

\n\n

文件大小已为 10236 Mb,Express 限制为 10 Gig\n但是磁盘使用情况报告显示 26% 的磁盘空间未分配,40% 为数据,32% 为索引。

\n

小智 5

您不需要增加临时数据库的大小。

\n\n
\n

在数据库 \xe2\x80\x98mydatabase\xe2\x80\x99 中,因为 \xe2\x80\x98PRIMARY\xe2\x80\x99 文件组已满。

\n
\n\n

告诉您它无法写入您的主文件组已满(c:\\数据库路径\\mydatabase.mdf)。要么没有存储 MDF 的磁盘空间,要么更可能的原因是您的主文件组没有更多可用空间可写入。

\n\n

您可以通过几种不同的方式解决这个问题

\n\n
    \n
  1. 如果未启用,则启用自动增长
  2. \n
  3. 如果启用自动增长,则按 MB、百分比或无限制增加最大大小
  4. \n
\n\n

在图形用户界面中

\n\n

在SSMS中:

\n\n
    \n
  • 右键单击您的数据库
  • \n
  • 选择属性
  • \n
  • 在数据库属性窗口中选择文件
  • \n
  • 在“自动增长最大大小”上选择自动增长选项。
  • \n
\n\n

在此输入图像描述\n在此输入图像描述

\n\n

SQL 更改语句

\n\n
use master\ngo\n-- Use one of the statements below\n\n-- this statement will allow for unlimited file growth \nalter database [mydatabase] modify file ( name =\'mydatabase\', maxsize = UNLIMITED)\n\n-- this statement will allow the database size to 100MB\'s.\nalter database [mydatabase] modify file ( name =\'mydatabase\', maxsize = 102400KB)\n
Run Code Online (Sandbox Code Playgroud)\n