• 締切済み

SQLServer2005でジョブが終了しない

SQL Server 2005でジョブを実行して約6000件のデータを処理するとエラー出力もなく実行中のままいつまでたっても終了しません。 約5000件のデータを処理した時は20分ほどで正常に終了しました。 ジョブが実行中のまま終了しない理由についてどういった事が考えられるでしょうか? トレースやパフォーマンス、SQLのエラーログを確認した限りでは特に問題はありませんでした。 Server環境 OS:Windows Server 2005 Entrprise Edition(64) Memory:12GB HDD:300GB×2 CPU:Xeon X5460 (3.16GHZ) よろしくお願いします。

みんなの回答

回答No.1

あなたがどちらを疑っているかそれから教えてください。 全てが64ビット環境なのでメモリの展開は十分であると考えられます。 となるとSQLのパフォーマンスだと考えます。 (1)SQLの中で変な制限を与えていないか?配列サイズは足りていますか。 (2)更新において(参照もそうですが)">"を使っていませんか。ロックの範囲が長くなります。 (3)行ロックであれば(エスカレーションがなければ)1行ごとロック資源を利用します。これが多くなっていくとロック資源の枯渇まで行かなくてもピーピーとするはずです。 (4)メモリがある程度あれば、メモリを効果的に使ってくれますが度が過ぎれば遅くなることも考えられます。 どのようにSQLを使っているかにかかると思います。 オンラインだけ、バッチだけ、オンライン、バッチの両方が。とか 物理設計をやっていますか。インデックスは適切ですか もう少し情報を示されるのが良いと感じます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • SQLサーバーのジョブでのexeファイル実行について教えてください。

    SQLサーバーのジョブでのexeファイル実行について教えてください。 FTP転送を行うバッチ(拡張子bat)を作成しexeファイルに変換してから SQLサーバーのジョブから実行しようと思っています。 batファイルからexeファイルへの変換は WindowsのIExpressとBat_To_Exe_Converterというツールを使用しました。 SQLサーバーにジョブを作成してバッチを実行させようとしたんですが batファイルのままであれば実行できるのに、exeファイルで実行させようとすると ジョブが実行中のままになり止まってしまします。 exeファイルは直接実行させると想定の処理が実行させるので 壊れていることは無いと思います。 原因の検討がつかず困っています。 些細なことでもいいので何か教えて頂ければと思います。 宜しくお願いします。 尚、exeに変換するのはバッチファイルの中身を見せないようにする為です。

  • SQLServerのジョブからバッチをキックすると、「ホストファイルが開けません」と出る

    今日は三件目で恐縮です。 テスト環境では、正常に行えましたが、本番環境に移行すると・・・ SQLServerのジョブからバッチをキックすると、 「ホストファイルが開けません」とエラーが出るんですが、どうしたらよいのか判りません・・・どのたかご教授願います。 ●先ほどの質問 本題ですが、SQLのジョブでDBサーバから他サーバーのバッチを呼んでますが、共有ファイルを参照できなくて困ってます。共有ファイルはadmini権限です。 何方かお助け下さい。 環境は、 DBサーバー:[WIN2KSEVER(admini権限/パスワード共通)] [SQLserver2000(ローカルインストール、混合モード、ドメイン構成なし) 他サーバー:[WIN2KSERVER(admini権限/パスワード共通)] ●先ほどのお答え(takekanさんありがとうございました。) DBサーバーにインストールしたSQLServer2000のサービスアカウントが 「ローカルアカウント」という前提で話をすすめます。 以下の手順で確認をしてみてください。 1.DBサーバーにAdministratorでログインして、共有ファイルの中身を見れるか?  →パスワードを要求されるようであれば、Administratorのパスワードをそろえてください。そうすればパスワードを要求されることはないと思います。 2.DBサーバーにAdministratorでログインして、SQLServerのジョブで実行しているコマンドを、コマンドプロンプトから実行して、実行できるか?  →実行できなければ、手順1を再度確認 3.ジョブを実行して実行できるか? これで解消できるか確信は持てませんがご参考まで。 以上ですが宜しくお願いします。

  • 印刷ジョブが終了しません

    プリンターで印刷を実行した後、プリンターのデータ送信状況が99% で止まってしまい、終了しません。 コントロールパネルの「プリンタとFAX」を確認しますとジョブが 「削除中」のままで止まってしまってます。 プリンター機種はLexmark Z605、OSはwindows XPです。 http://faq.ricoh.jp/faq/1032/app/servlet/qadoc?001673 上のリンクはリコーさんのヘルプですが、参考にして同様の処理をする と、ジョブは消えてくれるのですが、再起動をかけないと次の印刷が出 来ない状態になってしまいます。 今年賀状の宛名印刷で、一枚づつ宛名を印刷するごとに再起動をかけな ければならず大変困っています、もし、原因がお分かりの方がいましたら対処法を教えていただければと思いますのでよろしくお願いします。

  • SQLServerでのデータベース設計について

    あるシステムのデータベース設計をしております。 あまり知識、経験が無い為ご知恵をお借り出来たらと思います。 システムの概要としては、 「600件程度のデータを1時間毎にデータベースに取り込む。これを24時間365日続ける。さらに20箇所分同時に処理を行う。」 というものなります。 ざっと試算すると、1年だと ((600件 * 24時間) * 365日) * 20箇所 = 105,120,000件のデータを持つことになります。 これを10年間で考えると、105,120,0000件となります。 今のところ、シンプルに600件をそのまま取り込もうとしておりますが、 データ量が膨大になってしまう為、ディスク容量やインデックス等貼ったとしてもパフォーマンスが落ちないか等不安になってしまいます。 MSDNの情報でデータベースの容量を見積もったのですが、105,120,0000件だと1TB程必要となるようでした。 SQLSeverでこの位の件数、容量は一般的なのでしょうか? もしくは600件をそのままでは無く、1データとして取込み、 データを表示する際にプログラムで分割して処理する等の形にするのが良いのでしょうか? ちなみにWindows 2008 R2サーバーでSQLServer 2008 R2 Webエディションの環境となります。 宜しくお願いします。

  • エージェントのジョブの遅さ

    すいません、まだはじめたばかりで全然良くわからないのですが、 維持管理でこのSQL文で処理速度の遅さにひっかかっています。 自分で作ったものではないのでいまいちよくわかってないのですが、 エージェントのジョブで1日3回行っている処理、同じ件数(インデックスがまったく一緒)になるよう、INSERTをかける処理なのですが、 INSERT INTO TABLE_A SELECT AAA, BBB, CCC, 0, 0 FROM TABLE_B WHERE A + B + C NOT IN (SELECT A + B + C FROM TABLE_A) というようなTRANSACT SQLになっています。 TABLE_AにないものをTABLE_Bから持ってくるということだと思います。 件数は約13万件、なぜか1時間かかるようで、他の処理のレスポンスに影響が出てきています。 根本的にこういうやり方はまずいのでしょうか?処理を遅くする要因があるのでしょうか? もしあるようなら改善策を教えていただけると助かります。 環境はSQL SERVER 2005です。 どちらもA,B,Cにインデックスがあります ちょっと事情があって、大きくやり方を変えられないので、エージェントのジョブ内でもっと早くできる方法が知りたいです。 なにとぞ、よろしくお願いいたします。

  • SQLserverライセンス

    初心者です。 VB2005で開発、その際 SQL Serverを使用していました。 インストール設定をし、実行ファイルを別パソコンに入れ 動作確認を行いましたが、SQLServerを使用している 処理のところで「SQL Server 2005 Mobile Edition のこのバージョンは、 運用環境向けにライセンスされていません。」とエラーメッセージが出ます。 VB2005で開発中の時には、SQLserverライセンスを取っていなくても 実行の際、そのようなエラーメッセージは出なかったのですが・・ VB2005の入っていないパソコンだからでしょうか? 分かる方ご教授お願いいたします。

  • サーバOS、SQLserver及びVB6の質問です

    サーバ入替に伴い、以下のようなスペックの新サーバが納品されており、 現状、新サーバで検証作業中です。      <現 行>             →     <新> ・サーバOS:Windows server 2003(32bit) → Windows server 2008R2(64bit) ・CPU:Xeon X 5260 3.33GHz(2コア)   → Xeon E5-2403 1.80GHz(4コア) ・メモリ:4GB                 → 32GB ・データベース:SQL server 2005(32bit) → SQL server 2008R2(64bit) データベースは現行のコピーをアタッチしております。 このサーバにテキストファイルを使用して、データベースの特定のテーブルに 追加更新を行う、VB6.0(SP6)のプログラムがあり、テストを行っております。 プログラムは、現行のWindows server 2003(32bit) +SQL server 2005(32bit) 環境下で使用していたものをそのまま使用しております。 プログラムから、SQL serverへの接続は、ADO接続を使用し、接続文字列は、 "Provider=SQLOLEDB.1;User ID=[ ];Password=[ ];Initial Catalog=[ ];Data Source=[ ]" と記述しております。 ここで質問ですが、現行サーバと新サーバで、同じプログラム、同じテキストファイルを 用いてテストすると、不思議なことにスペックがいいはずの新サーバの方がプログラム 処理時間が倍~3倍程度かかります。 プログラム実行時のCPU使用率やメモリ使用率は、新しいサーバの方がかなり余裕が あるのですが、何故か処理が遅いです。 Windows server 2008R2、SQL server 2008R2、VB6、接続文字列等どこに原因があり そうでしょうか? (何か原因及び対応策らしきものを調べる術はありますでしょうか?) よろしくお願いいたします。

  • SQLServer MSDEについて

    SQL Server関係初心者です。 教えてください。 今までWindowsXPにMICROSOFT SQL SERVER 2000 DESKTOP ENGINEがインストールが インストールできたのですが、Windows7ではインストールできませんでした。 Windows7は対応していないでしょうか? それに代わる無償のものはありますでしょうか? Microsoft SQL Server 2005 Express Edition Service Pack 3がその代わりと なりますでしょうか? XPの時はいつもインストール後に以下のようなコマンドを実行していました。 setup.exe SECURITYMODE=SQL SQPWD=password MSDEとMicrosoft SQL Server 2005 Express Edition Service Pack 3では全く異なるのでしょうか? よろしくお願い致します。

  • SQLServer2005 SP3 インストール失敗

    Windows XP SP3 のパソコンに Visual Studio 2005 Professional Editionをインストールしました。 そのときVisual StudioについてきたSQL Server Developer Editionも同時に インストールしました。 こないだMicrosoftUpdateを行ったのですが、 Microsoft SQL Server 2005 Express Edition Service Pack 3(KB955706) のアップデートでエラー(エラー番号2BC9)になりアップデートに失敗します。 ネットで調べ Microsoft SQL Server 2005 Service Pack 3 (Express EditionではないSP3)をインストールするとよいと 書いてあったので実行したところ、インストールは完了したのですが、 そのあとまたMicrosoftUpdateを実行すると、更新プログラムにはいまだ Microsoft SQL Server 2005 Express Edition Service Pack 3(KB955706) が表示され、実行するとエラーになります。 いまは、↓の2つの疑問があります。 1.Developer EditionでもSP3はExpress Editionのバージョンをインストールするのか? (SP3をインストールするにはどのバージョンをインストールすればよい?) 2.SQL Server 2005 Developer Editionでのバージョン確認方法 どちらかでもよいのでわかるかたおしえてください

  • SQLServer、エラーにならずに途中で終了

    VB2008,SQLServer2005でバッチ処理を作成し 下記のような処理を行っているのですが データ件数が多い時、何度行っても エラーにもならず、途中で処理が終わっているようなのですが どのような原因が考えられるのでしょうか・・・ トランザクション開始 DBからデータ取得1 データ編集1 DBへデータ登録1 ループ開始  DBからデータ取得2  データ編集2  DBへデータ登録2 ループ終了 トランザクション終了 上記のDBへデータ登録2の途中で終了してしまっているようです・・・ デバック用としてテキストファイルへの処理工程の書き出し(発行SQLなど)しているのですが 書き出さた文章が文章の途中で終わり、ファイルEOFが・・・ あいうえお と書かれるはずが あいう となってしまっています・・・ なので処理が途中で終わってしまっているのかと思っています。 ディスク容量はかなり余裕があるのでディスク容量不足ではないのですが・・・ よろしくお願いします。