web-dev-qa-db-ja.com

「PRIMARY」ファイルグループがいっぱいです。 SQL Server Express 2017でtempdbのサイズを増やすにはどうすればよいですか?

特定のテーブルのインデックスを再作成するとき

DBCC DBREINDEX(@TableName, '',90) 

エラーが出る

レベル17、状態2、手順aareindex、行21 [バッチ開始行0]「PRIMARY」ファイルグループがいっぱいのため、データベース「mydatabase」のオブジェクト「dbo.SORT一時実行ストレージ:422738479742976」にスペースを割り当てることができませんでした不要なファイルを削除するか、ファイルグループ内のオブジェクトを削除するか、ファイルグループにファイルを追加するか、ファイルグループ内の既存のファイルに対して自動拡張をオンに設定して、ディスク領域を作成します。

TempDbのサイズを増やしてみます

データベースのプロパティを見るとSSMSを使用してサイズを確認できますが、設定方法がわかりません。

[更新]

select type_desc, name, size, max_size, growth from tempdb.sys.database_files

戻り値

these results

ファイルサイズはすでに10236 Mbで、Expressの制限は10ギガですが、ディスク使用量レポートは、ディスク領域の26%が未割り当てで、40%がデータ、32%がインデックスであることを示しています。

2
kirsten g

ファイルサイズはすでに10236 Mbで、Expressの制限は10ギガです。

ユーザーデータベースdata file sizeが制限(Express Editionでは10Gb)に達したが、ディスク領域の26%が割り当てられていない場合、rebuildsortを使用してインデックスをtempdbにしようとすることができます。

DBCC DBREINDEXdeprecatedであり、SQL Server 2017で使用する理由はありません。alter index..rebuildを使用すると、sorttempdbで実行することを示すことができます。

alter index your_index on your_table rebuild
with (sort_in_tempdb = on, fillfactor = 90);

インデックスをrebuildするときは、最初にspaceを使用してindexのコピーを作成する必要があります(このスペースはdbに割り当てられます)。それを作成するには、sortを実行するためのスペースも必要です。このスペースはtempdに割り当てることができます。あなたの場合、エラーにはデータベースにspaceを実行するsortがなかったことが明確に示されているため、sorttempdbで実行される場合は問題を解決できるでしょう。

詳細については、こちらをご覧ください。 インデックスのSORT_IN_TEMPDBオプション

3
sepupic

Temp dbのサイズを増やす必要はありません。

「PRIMARY」ファイルグループがいっぱいであるため、データベース「mydatabase」内.

プライマリファイルグループに書き込めないことが通知されています(c:\ path to database\mydatabase.mdf)。 MDFが格納されているディスク領域がないか、またはより可能性の高い原因は、プライマリファイルグループに書き込むための空き容量がないことです。

これにはいくつかの方法で対処できます

  1. 有効になっていない場合は自動拡張を有効にする
  2. 自動拡張が有効になっている場合は、最大サイズをMB、パーセント、または無制限に増やします。

GUI内

SSMSの場合:

  • データベースを右クリック
  • プロパティを選択
  • データベースのプロパティウィンドウでファイルを選択する
  • 自動拡張の最大サイズで、自動拡張オプションを選択します。

enter image description hereenter image description here

SQL変更ステートメント

use master
go
-- Use one of the statements below

-- this statement will allow for unlimited file growth 
alter database [mydatabase] modify file ( name ='mydatabase', maxsize = UNLIMITED)

-- this statement will allow the database size to 100MB's.
alter database [mydatabase] modify file ( name ='mydatabase', maxsize = 102400KB)
4
mattintech