web-dev-qa-db-ja.com

Tempdb.ndfsの削除

Tempdbは8つのファイルで構成されており、4つに減らしています。4つのdbcc dropステートメントとfreeステートメントを実行すると、SQL Serverで余分な.ndfを削除できるブログをたくさん読んでから、dbcc shrinkfileをemptyfile句、次にファイル削除句を指定したalterdbコマンド。これを試みたとき、エラー

DBCC SHRINKFILE:ページ9:364016は作業テーブルページであるため、移動できませんでした。

メッセージ2555、レベル16、状態1、行19ファイル「tempdev8」のすべての内容を他の場所に移動して空のファイル操作を完了することはできません。 DBCCの実行が完了しました。 DBCCがエラーメッセージを出力した場合は、システム管理者に連絡してください。

私の質問:

ロックされた一時テーブルを識別して削除してから、dbccステートメントを再実行するか、単にalterステートメントを実行してからインスタンスを再起動するか、インスタンスを再起動してからalterを再実行する必要がありますか?一時テーブルがtempdbによって一貫して使用されているため、削除ファイルが機能しないという問題を認識しています。

2
rvsc48

Mike Roseの回答 Microsoft Socialサイトでは、これでうまくいくと思います。

FREESYSTEMCACHE ('ALL');

DBCC FREEPROCCACHE;

SQL Serverがクエリプランを再作成するため、これにはパフォーマンスへの影響がありますが、TEMPDBを縮小できるはずです。

1
Sting