“PRIMARY”文件組已滿。如何在 SQL Server Express 2017 中增加 temdb 大小?
當我重新索引特定表時
DBCC DBREINDEX(@TableName, '',90)
我收到一個錯誤
第 17 級,狀態 2,程序 aareindex,第 21 行
$$ Batch Start Line 0 $$ 無法為數據庫“mydatabase”中的對象“dbo.SORT 臨時執行儲存:422738479742976”分配空間,因為“PRIMARY”文件組已滿。通過刪除不需要的文件、刪除文件組中的對象、向文件組添加其他文件或為文件組中的現有文件設置自動增長來創建磁碟空間。
所以我想嘗試增加 TempDb 的大小
我可以通過查看數據庫屬性來使用 SSMS 查看大小,但我不知道如何設置它。
$$ Update $$
select type_desc, name, size, max_size, growth from tempdb.sys.database_files
返回
文件大小已經是 10236 Mb,Express 限制是 10 Gig 但是磁碟使用報告顯示 26% 的磁碟空間未分配,40% 是數據,32% 是索引。
文件大小已經是 10236 Mb,Express 限制是 10 Gig
如果您的使用者數據庫
data file size
達到其限制(Express Edition 中為 10Gb)但 26% 的磁碟空間未分配,您可以嘗試使用in來創建rebuild
索引。sort``tempdb
DBCC DBREINDEX
isdeprecated
並且沒有理由使用 inSQL Server 2017
,並且 withalter index..rebuild
你可以表明你想要執行sort
intempdb
:alter index your_index on your_table rebuild with (sort_in_tempdb = on, fillfactor = 90);
當你
rebuild
一個索引時,你首先需要space
建構你的副本index
(並且這個空間將分配在你的db
)並且建構它你還需要空間來做sort
,這個空間可以分配在tempd
. 在您的情況下,錯誤清楚地表明您的數據庫中沒有space
可做sort
的事情,所以如果sort
將在tempdb
.您可以在此處閱讀更多資訊:SORT_IN_TEMPDB 索引選項