追記します。
たとえば、tempdbに小さいファイルを追加して、肥大化してしまったファイルを削除する、というオペレーションを
ファイル数分繰り返す、というのは有効でしょうか?
(shrinkfileとそんなに変わらない気もします)
本番環境なので警告を消したい程度の理由で再起動できないというのはわかりますが、テスト環境なのでジョブが動作していないというのは、テスト環境でもジョブを流せばいいだではないですか?
新しいプライマリとなるファイルグループを追加して tempdb の使用中のテーブルが全て旧プライマリから新プライマリに移動することができれば、肥大化したファイルを削除できるのではないかと思うのですが、tempdb はファイルグループの追加もできないですし、ReadOnly ファイルグループの設定もできないと記載がある特殊なデータベースなので、物理ファイルのオンライン切り替えは難しそうですね。
K. Takaokaさん、ご回答ありがとうございます
>テスト環境でもジョブを流せばいいだではないですか?
おっしゃるとおりですが、ファイルトリガーベースのジョブが動いたりするため、同一条件の再現に非常に手間がかかるので、できればやりたくない、という事情です
今のところ、オンライン圧縮はあきらめ、やはりSQL Serverを再起動できるタイミングを作り、そこで作業する方向で準備を始めました。
引き続き、皆様の経験値をお聞かせいただければ幸いです