29

SQL Server Management Studioで、SQLジョブの「履歴の表示」を行うと、ジョブの最後の50回の実行のみが表示されます。

サーバー上で作成されてからのSQLジョブのすべての実行の完全なログを表示するにはどうすればよいですか?

4

4 に答える 4

42

SQL Server ジョブ システムでは、ジョブごととシステム全体の両方で、ジョブ履歴エントリの総数が制限されています。この情報は MSDB データベースに保存されます。

明らかに、破棄された後に戻って情報を表示することはできませんが、SQL Server エージェントのプロパティを変更して、これから記録されるエントリの数を増やすことができます。

SQL Server エージェントのプロパティ:

  • 履歴ページを選択します
  • 「ジョブ履歴ログの最大サイズ (行)」と「ジョブごとの最大ジョブ履歴行数」を変更するか、履歴ジョブ データがその経過時間に基づいて削除される方法を変更します。

履歴は返されませんが、今後のクエリに役立ちます。

于 2011-10-13T12:53:59.230 に答える
4

ジョブ履歴は、SQLServer自体の専用データベースのどこかに保存されていると確信しています。この場合、SQL Server Profilerを使用して、SQL Server Management Studioによって送信されたSQLステートメントをインターセプトし、テーブルの名前などを見つけることができます。

于 2011-10-13T12:52:41.213 に答える
3

あなたの結果は、いくつかのことに依存します。

  1. [ジョブ ログ履歴のサイズを制限する] と [エージェント履歴を自動的に削除する] の設定 [SQL エージェントを右クリック | プロパティ | 歴史]と
  2. 保守計画で「履歴のクリーンアップ」タスクを実行しているかどうかに関係なく (またはその方法で手動で)。MP タスクは、msdb.dbo.sp_purge_jobhistory選択した期間に相当する「最も古い日付」パラメーターを使用してストアド プロシージャを実行します。
于 2012-09-07T22:59:48.360 に答える