問題タブ [sql-agent-job]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2030 参照

sql-server - SQLジョブはパッケージの実行に失敗しますが、VSは失敗します

Visual Studio から直接パッケージを実行すると、エラーは発生しません。SQL Server エージェント ジョブを介してパッケージを実行すると、次のエラーがスローされます。

ソース: Fact_Invoice_Item PWBConsolidation [1] 説明: SSIS エラー コード DTS_E_OLEDBERROR。OLE DB エラーが発生しました。エラー コード: 0x80004005。OLE DB レコードが利用可能です。ソース: "Microsoft SQL Server Native Client 10.0" Hresult: 0x00040EDA 説明: "警告: Null 値は集計またはその他の SET 操作によって削除されました。". 終了エラー エラー: 2012-02-14 07:17:49.01 コード: 0xC0047038 ソース: Fact_Invoice_Item SSIS.Pipeline
説明: SSIS エラー コード DTS_E_PRIMEOUTPUTFAILED。コンポーネント「PWBConsolidation」(1) の PrimeOutput メソッドがエラー コード 0xC0202009 を返しました。パイプライン エンジンが PrimeOutput() を呼び出したときに、コンポーネントがエラー コードを返しました。エラー コードの意味はコンポーネントによって定義されますが、エラーは致命的であり、パイプラインは実行を停止しました。これより前に、失敗に関する詳細情報を含むエラー メッセージが投稿される場合があります。終了エラー DTExec: パッケージの実行で DTSER_FAILURE (1) が返されました。開始: 午前 7:14:35 終了: 午前 7:17:50 経過: 195.094 秒。パッケージの実行に失敗しました。注: ステップは要求された回数 (3) 回再試行されましたが、成功しませんでした。ステップは失敗しました。

問題の原因となっている部分を切り分けました。Ole Db Source では、クエリを使用してデータを取得し、次の行を削除すると、Sql Server Agent Job を介してパッケージが正常に実行されます。

編集:
私はチェックしたところ、データの一部がデータフローを通過し、ある時点でエラーがスローされるように見えます。Checksum=2 を手動で設定しましたが、まだ機能しません

これはなぜですか?

どうもありがとう、
イリヤ

0 投票する
3 に答える
37598 参照

sql-server - ストアドプロシージャを実行するSQLジョブにパラメータを渡す方法

私は以下のコードを持っています(必要な部分のみ)

ここで、https://localhost値を変数に渡してストアドプロシージャに渡します(何らかの理由でSP内に渡すことができません)。

だから私は試しました

しかし、それは機能していません。ネットでアイデアや構文なども検索していますが、今のところ運がありません。

何か案は?

0 投票する
1 に答える
2542 参照

sql-server-2005 - C# を使用して Sql Agent ジョブを実行する最良の方法は何ですか?

私は Sql サーバー 2005 を使用しており、UI には C#/Asp.Net 4.0 を使用しています。Web ページでのユーザー アクションから SQL ジョブをトリガーしたいと考えています。実行中にジョブのステータスをチェックし続ける必要があります。この問題には、ジョブのステータスを取得する古いスレッドがいくつかあります ( C# で SQL Server エージェントのジョブ情報を監視する方法) が、プログラムでジョブを実行、停止、有効化、無効化できる必要があります。

UI に以下の機能が必要です。

  1. SQL ジョブのステータスを確認する

  2. 指定されたジョブを実行する

  3. 仕事をやめる

  4. ジョブの無効化/有効化

0 投票する
0 に答える
493 参照

sql-server-2005 - ストアド プロシージャを実行する SQL Server エージェント ジョブが非常に遅い

基本的にピボット テーブルを再構築するストアド プロシージャがあります。一時テーブルに新しいデータを構築し、永続テーブルを切り捨てて新しいデータを挿入し、最後に一時テーブルを削除します。

Management Studio でストアド プロシージャ (または T-SQL コードを直接実行) を実行すると、約 1 分かかります。これが最も効率的なプロセスではないことはわかっていますが、問題ありません。

このタスクを 20 分ごとに実行するようにスケジュールしようとすると、問題が発生します。ストアド プロシージャを実行するために SQL Server エージェント ジョブをセットアップすると、今ではほぼ 1 時間半かかります...そうです、90 倍遅いのです!

この投稿を見つけました:SQL Server Agent Job Running Slow、これは同様の問題のようですが、ストアド プロシージャの開始時またはSQL エージェント ジョブのコマンドのset nocount on前に呼び出しても効果がないようです。テーブル値関数 (これもカーソルを使用しません) でexec実行していますが、クエリはカーソルを使用しません。cross apply

明らかに何かが欠けていますが、どこから始めればよいかさえわかりません。ストアド プロシージャを作成することで、この種の問題を回避できると考えました。

参考までに、ストアド プロシージャは次のようになります。

0 投票する
3 に答える
28934 参照

sql-server - 前の SQL エージェント ジョブ ステップの結果に基づいてジョブ ステップをスキップする方法は?

データベースのオンライン ステータスに基づいて実行されるジョブを作成しようとしています。たとえば、手順 1 ではデータベースがオンラインかどうかを確認します。データベースがオンラインの場合、残りの手順が実行されます。それ以外の場合は、ジョブが成功したと報告されます。

0 投票する
2 に答える
4967 参照

sql-server - SQL Server でジョブの有効化/無効化を設定する権限

データベース ユーザーは許可されていますがSQLAgentOperatorRole、ジョブの有効化/無効化を設定するとエラーが発生します。エラーメッセージは次のとおりです。

オブジェクト 'sysjobs'、データベース 'msdb'、スキーマ 'dbo' に対する SELECT 権限が拒否されました

でジョブの有効/無効を設定しsp_update_jobます。

コメント:

次のステートメントを実行すると、エラーが発生します。

ただし、次のステートメントを使用すると、正常に実行されます。

usp_prod_SetJobStatus SP:

0 投票する
1 に答える
1429 参照

sql-server-2005 - SQL スケジュールを使用した SSIS の月次実行

私は、毎月最終木曜日が期限の月次レポートを政府機関に提出する SQL 2005 SSIS パッケージを持っています。適切な日にパッケージを実行するように SQL Server をセットアップしました。レポートのスケジュールは問題ありません。

現在、SSIS パッケージは月次レポートを作成します。2 つの変数を使用しました。式を使用して月の最初の日を決定し、それを "5/1/2012" のような文字列に変換する BeginDate。同様に、「5/3/2012」のように今日の日付を吐き出す EndDate があります。

レポートが最後に実行された日の翌日に BeginDate 変数を設定する方法はありますか? 前月の最終木曜日の日付を調べるより良い方法はありますか?

0 投票する
5 に答える
11310 参照

tsql - エージェント ジョブを開始し、完了して成功または失敗するまで待機する必要がある

SQL Server 2005 を使用してサンプル コードを探していましたが、エージェント ジョブを開始し、プロセスが終了するまで待ってから、成功または失敗を取得する必要があります。

私は使用できることを知っています

msdb.dbo.sp_help_jobジョブを開始することはできますが、いつ完了したかを調べて、成功したか失敗したかを調べるためのサンプル コードが見つかりません。

0 投票する
3 に答える
25699 参照

sql - SQL エージェント ジョブ: 実行されている時間を確認する

シナリオ

1 日を通して数分ごとに実行されるようにスケジュールされている特定の SQL エージェント ジョブがあります。

前のスケジュールからまだ実行されているため、次のスケジュールを逃す正当な時期があります。

時々、ジョブが「ハング」することがあります。これは失敗しません (ジョブがまだ停止していないため)。これが発生した場合、ジョブを手動で停止することができ、次回の実行時に正常に動作します。中断したところから再開するように設計されています。

一番効率の良い方法は…?

「JobX」という名前の SQL エージェント ジョブが現在実行されている時間を (秒単位で) 判断する方法が必要です。現在実行されていない場合は、ゼロを返すことができます。

このようにして、特定のしきい値を超えて実行されているジョブを停止できます。

xp_sqlagent_enum_jobs と sysjobhistory の組み合わせを使用できると思いますが、より良い解決策があるかどうかに興味があります...そして、残りの人が既に遭遇して回避した障害から利益を得ることができれば幸いです。

0 投票する
2 に答える
1157 参照

c# - MS SQL サーバー R2 での実行に 24 時間以上かかる

私の問題(シナリオ):

たとえば「ストアドプロシージャ」を実行できる組み込みメソッド呼び出し「WAITFOR」がすでにあります。この待機は 24 時間未満しか実行できません。

しかし問題は、開発者でもある私のクライアントが、この問題を回避し、開発時間を短縮するために 24 時間以上待つ方法を見つけたいと考えていることです。

方法はすでにある。これにより、必要なテーブルを 1 日 1 回クエリし、必要なメールを顧客などに送信できます。

この「WAITFOR」は 24 時間に制限されているため、この「WAITFOR」の実行回数が増えると (たとえば 2000)、パフォーマンスの問題が発生するはずです。

私の質問:

  1. ストアド プロシージャを 24 時間以上保持する方法はありますか。14日以上としましょう。
  2. これを解決する方法がない場合,,この問題についてどのように弁護すればよいですか, クライアントに提供できる事実は何ですか, パフォーマンスの問題など,,

これは私が思うことです.この待機は24時間に制限されているため、データベースタスクを正確に時間どおりに実行するために期待される機能を提供する他のオプションはありません. ただし、これにより、各「WAITFOR」実行を追跡するためにサーバーに大きなオーバーヘッドが生じます。これが 2000 を超えると、サーバーとしては耐えられません。

利用可能な最良のオプションは、(必要に応じて) 1 日に 1 回実行される「SQL エージェント ジョブ」を用意し、 WAITFORの設定に関連する値を取得して、ジョブを時間どおりに正確に実行することです。

24 時間以上待つというこの問題について、よりよく理解してください。次の代替案に進みます。:(((((

前もって感謝します。