web-dev-qa-db-ja.com

「tempdb」のディスクサイジングに関する考慮事項-年に2回程度成長

私は人事部の従業員が年に2回ほど長く複雑な分析と計算を実行する人事ソフトウェアを持っています。このため、tempdbは500 GB以上に増えています。

良いディスクサイジングソリューションとは何ですか?残りの年はtempdbはそれほど大きくないからです。

詳細

  • SQL Serverのバージョンと関連するエディションは2017 Standardです。
  • tempdbとデータベースは同じパーティションにありますD:とログファイルは別のパーティションにありますE:
  • HRデータベース自体は約78GBです。
3
Steve_Mueller

「本当の」答えは、人事担当者やソフトウェアベンダーと協力して、年に2回の仕事を修正または改善し、そうしないようにすることです。

それが不可能だとすれば、あなたは  3つのお粗末なオプション:

  1. 一年中tempdbを巨大なままにします。
  2. Tempdbが非常に大きくなるようにディスクに十分な空きスペースを残し、その後すぐに縮小して戻します。
  3. システムと調整して処理の直前にディスク領域を追加し、その後tempdbを縮小してディスク領域を回復します。

1と2は機能的にはほとんど同じですが、私は2に向かう傾向があります(ベンダーが過去6か月の間に一緒に行動し、知らないうちに処理ジョブを修正した場合に備えて)。

#3を正確に行う方法は、環境によって異なる多くの技術的な詳細に依存します。私が検討する方法の1つは次のとおりです。

  • 処理する前に、大きな一時ドライブ(たとえばz:)をサーバーに追加します。
  • ALTER DATABASE tempdb MODIFY FILE各tempdbファイルについて、z:の新しい場所とより大きなファイルサイズの両方を指定します
  • その変更を有効にするためにSQLを再起動します(SQLは再起動するたびにtempdbを再作成します)
  • Tempdbが処理中にz:で必要なだけのスペースを使用するようにします
  • 処理が終わったら、再度ALTER DATABASE tempdb MODIFY FILE tempdbを元のドライブ(および元の小さいサイズ)にリダイレクトします。
  • 変更を有効にするためにSQLを再起動します
  • 空になったディスクをドロップ/削除する

私たちの環境では、これは(SAN /仮想化の特定の構成により)たまたまvastly簡単に追加して後で削除するドライブをそれよりも既存のドライブを拡張するおよび(特に)に既存のドライブを縮小します。 (私が正しく覚えている場合、既存のドライブを縮小するには、まったく新しいディスクを提示してデータを移行する必要があります)。ただし、走行距離は構成によって異なります。

6
BradC