• ベストアンサー

SQLServer2000SP4の処理速度について

kikaida-の回答

  • kikaida-
  • ベストアンサー率69% (37/53)
回答No.3

1件ずつやるから遅いんだと思います。 存在チェックも含めて全体で一括処理できませんか。 テキストを読みこんで登録する処理ならば、一旦BCPでワークに入れてからやってみてください。

関連するQ&A

  • SQLServer2005での登録・更新処理について

    お世話になっております。現在、VisualC++(6.0)とSQLServer2005(9.0.1399)を利用して24時間365日常駐するバッチアプリケーションを開発したのですが、極稀に(年に2,3回程)更新処理と登録処理が正常に行かずデータが抜け落ちることがあります。 バッチアプリケーションは機械から送られてくるログファイルを取り込みデータベースに登録・更新を行うプログラムとなっております。 このような現象を防ぐ方法は無いでしょうか? ※ちなみにプログラムではきちんとコミットしているようでした。

  • VB5 + SQLServer2005 で長時間の処理

    今までVB5 OS:windowNT4.0 DB:SQLServer6.5 上で稼働していたシステムをサーバ入替があり OS:Windows2003 Server R2 DB:SQLServer2005 Standard Edition に入れ替えたところ データを読み込んで更新するような処理を1時間ぐらい実行していると Microsoft OLE DB Provider for ODBC Drivers でエラーが発生しました。 [Microsoft][ODBC SQL Server Driver][Named Pipes]ConnectionRead (WrapperRead()). というエラーが発生します。 この現象を回避するにはどうしたらよろしいでしょうか?

  • SQLServerでREPLACE/SELECTができるか?

    My-SQLでは以下のSQLにより test01というDBからtest02というDBへ データをinsertすることができると思います。 また「insert」ではなく「replace」にすることで 同一キーの場合エラーにならず置き換えで データを登録してくれます。 ======================================= insert into [test01].dbo.test_table select * from [test02].dbo.test_table ======================================= そこで上記の「replace」を同じように SQLServerでできないか知っている方が おられたら是非ご教授いただきたく。 よろしくお願いいたします。

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

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

  • SQLServerにおける、排他制御に関して質問です。

    SQLServerにおける、排他制御に関して質問です。 環境:  SQLサーバ  ・Windows 2003 Server SP2  ・SQL Server 2005 Standard Edition SP3  SQLクライアント  ・WindowsXP SP3  ・.NET Framework 3.5 SP1 VB.NET アプリ  DBアクセサ  ・ADO.NETを利用 ---------------------------------------------------------------------- 1.DBとのコネクションを確立        ・        ・        ・ 2.データベーストランザクションを開始(レベルはSerializable) 3.テーブルAに対してINSERTを実行   (テーブルAの主キーはオートインクリメント設定されている。) 4.3の結果、追加された主キーを取得するため、MAX()関数にて主キーの最大値(つまり、3で追加した行のはず)を取得 5.テーブルAを外部参照しているテーブルに対して、4で取得したテーブルAのキーを利用して、行を追加・更新などを行う。 6.コミットを行う。   (コネクションは、アプリケーションが終了するまで保持する・・・) ---------------------------------------------------------------------- この処理フローで実行していたシステムですが、 二つのクライアント(X,Y)から、同時に2からの処理が行われた際に排他されず、 Xが、Yが作成したレコードの主キー値を元に、5の更新を行ってしまいました。 ログを見ると、 2→成功 3→成功(別のレコードが作成された) 4→XがMAX関数にて、Yが作成したレコードの主キーを取得   ※処理そのものは成功しているが、論理的におかしい となっています。 論理的には、トランザクションをかけているので、3からの処理が同時に行われるはずはなく、 4で取得される番号も、それぞれが作成した行の主キー番号になるはずなのですが・・・。 論理的に見落としている点や、環境的な要因などで、考えられる原因はありますでしょうか・・・?

  • SQLServer2005のコマンドを教えて下さい

    SQLServer2005のバックアップ・リストアコマンドについて教えてください。 自動でSQLServer2005のバックアップ取得・復元を行うバッチを作成することになりました。 バッチの知識はそこそこあるのですが、 SQLServerは触ったことが無いのでどんなコマンドがあるか全然知りません。 ヘルプを見てもうまく見つかりませんでした・・・。 GUIではいつも、 ■バックアップ ・対象DBを右クリック - 「タスク」 - 「バックアップ」を選択 ・バックアップ先を指定 それ以外はデフォルトのまま ■復元 ・対象DBを右クリック - 「タスク」 - 「復元」 - 「データベース」 ・復元用ソースに「デバイスから」を指定 ・「ファイル」でバックアップしたファイルを指定 ・「復元するバックアップセットの選択」にて「完全~」にチェック ・オプションタブにて、「既存のデータベースを上書きする」にチェック ・それ以外はデフォルトのまま といった操作で実行しています。 これと同じことをコマンドで実現したいのです。 どんなコマンドがあるのか? オプションにどんな指定をしてやればいいのか? 例を交えて詳しく教えていただけないでしょうか? 知識をお持ちの方、どうかアドバイスお願いします。

  • SQLServer2005Expressでアタッチ出来ない

    いつも仕事に役立つ情報をありがとうございます。 表題の件ですが、PCの入れ替えに伴い 前PCのSQLServer2005Expressにて稼動していたDbを 移行しようとした際に、デタッチ/アタッチでやろうとしたんですが 下記エラーが発生してアタッチ出来ない事象が発生してしまいました。 同様のエラーを克服した経験をお持ちの方からのアドバイスを お願いします。 「エラーメッセージ」 ------------------------------ サーバー 'D869\SQLEXPRESS' のデータベースのアタッチに失敗しました。 (Microsoft.SqlServer.Express.Smo) Transact-SQL ステートメントまたはバッチの実行中に例外が発生しました。 (Microsoft.SqlServer.Express.ConnectionInfo) データベース "Asprova" を更新できませんでした。データベースが読み取り専用です。 (Microsoft SQL Server、エラー: 3906) ------------------------------

  • SQLServer2008

    SQLServerは始めてです。 SQLServer2008 Management Studio Expressを自分のPCにインストールしました。やりたいことは、自分のPCでサーバー、データベースを作ってVB6でデータを取得したりするアプリを入れて動かせる環境に したいのですが。(他のPCにサーバーを設定せず)インストールした後、どうやってサーバー登録するのか本を見てもよく分かりません。複雑なSQLを作成しなくてもSQLServerでは簡単にできるような事を本に書いてあるみたいですが。 SQLServer Management Studio を起動するとサーバーへの接続画面が 表示されます。でもまだサーバーの登録がされていないので、エラーになってしまいます。左側のオブジェクトエクスプローラは空っぽです。この後何をすればいいのか分かりません。 それとも何か足りないのでしょうか?サーバーの登録、データベースの作成方法を教えてください。そしてサーバーへの接続画面で入力して エラーなくサーバーに接続し、データベースに接続できるように教えてください。

  • VBでフォームを作ってSQLServer2000にデータ登録したい。

    VBでフォームを作ってSQLServer2000にデータ登録したい。 の、ですが、可能でしょうか?ついでに詳しいやり方、 SQL SERVER2000のパーソナルエディション。 http://www.microsoft.com/japan/sql/enterprise/feautures.asp の値段も教えていただければうれしいのですが。 よろしくおねがいします。

  • SQLServerが存在しないか、アクセスが拒否されました

    WindowsXP(SP2) SQLServer2000(SP4) VisualBasic6.0(SP6) の環境で開発しています。 数千件の画像のファイル名称(パスを含む)をテーブルに登録する操作を行うアプリがあります。この処理を実行中に、下記のエラーが発生します。 "[DBNETLIB]{ConnectionOpen(Connect()).]SQL Serverが存在しないか、アクセスが拒否されました" 1レコード目の操作から発生するのならまだしも、1000件くらいINSERT処理が進んでから発生するので、原因が分かりません。 また、エラーが発生するのは固定の環境だけで、同じアプリ、同じDB、同じ画像ファイルを使っても、別の環境では発生しません。 こんな場合、どの辺を確認したら良いかご教授下さい。 宜しくお願いします。