データベースで定期的に(たとえば毎週)いくつかのSQLステートメントを実行して古いデータを削除する方法を探しています。私が見る限り、これを行うには(少なくとも)2つの方法があります。
- 「メンテナンスプラン」と「T-SQLステートメントタスクの実行」を使用する
- 「SQLServerエージェントジョブ」を使用して、そのジョブの「ステップ」でステートメントを指定します
私の質問は、これら2つの可能性の違いは何であり、どちらをタスクに使用する必要があるかということです。
データベースで定期的に(たとえば毎週)いくつかのSQLステートメントを実行して古いデータを削除する方法を探しています。私が見る限り、これを行うには(少なくとも)2つの方法があります。
私の質問は、これら2つの可能性の違いは何であり、どちらをタスクに使用する必要があるかということです。
それは実際にはどちらか/または選択ではありません。いくつかの重複があります。
保守計画は、データベースに対して「何かを行う」ための一連のステップと考えてください。これらのステップは、実行をスケジュールする必要がある計画にカプセル化されます。
SQL Serverエージェントは、定期的にジョブを実行するサービスです。ジョブとは、実行がスケジュールされているものです。メンテナンスプランは仕事です。
メンテナンスプランの実行をスケジュールすると、SQL Serverエージェントが定期的に実行するジョブ(または複数のジョブ、DJに感謝)が実際に作成されます。
さて、どちらの方法が最適か(メンテナンスプランウィザードを使用するか、エージェントを直接使用するか)については、ほとんどのデータベースで、メンテナンスプランウィザードで十分です。メンテナンスプランによって作成されたジョブにステップを追加することもできますが、それは環境によって異なります。
それは理にかなっていますか?