• ベストアンサー

VB.NETのConnectionについて

VB.NET2003でSQLSERVER2000を接続する際に、SQLを発行する毎にConnection確立するのはシステム上負荷が掛かったりしないのでしょうか。 接続方法はADO接続です。

質問者が選んだベストアンサー

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

ADO.NETで接続プール(コネックションプール)が働くので、コード上で接続、切断したからといって毎回コネクションの確立を行うわけではありません。 だだし、コード上で接続、切断するときにクラアント側のCPUやメモリに負荷は掛かるでしょう。 まとめると (1)トラフィック上は、ほぼ影響なし。 (2)クライアント側のリソースには影響あり。 コード上で接続、切断の繰り返しはよろしくない、というのが私の見解です。 (2)についてはたいした影響はないという意見もあります。 http://www.atmarkit.co.jp/bbs/phpBB/viewforum.php?forum=7&38832

0000hiro
質問者

お礼

ご回答ありがとうございます。 やはり接続、切断の繰り返しはよくないですよね。。。

その他の回答 (1)

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.1

CPU利用率が上がるかどうかという点では微妙ですが、時間がかかることは間違いありません。 コネクションプールを有効にすれば「毎回コネクションを確立しては切断」ということは避けられるのではないかと思います。試してみてはいかがでしょうか。

参考URL:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsqlmag03/html/The_NETConnectionPoolLifeguard.asp

関連するQ&A

  • VB2008でADO接続(ADO.NETではありません)で

    VB2008でADO接続(ADO.NETではありません)で SQLServerに接続するにはどうすればいいのでしょうか? よろしくお願いします。

  • VB6.0でSQLServerへ・・・RecordSet生成タイムアウト・・・

    VB6.0でSQLServer2000へADOで接続して、RecordSetに結果を入れる際に「時間切れ」になってしまいます。コネクションはちゃんとできていて(connection.stateは1)で、 RecordSet.open(SQL文,connection,adOpenForwardOnly,adLockReadOnly)でしばらく待った後「Err.description」で時間切れと言われてしまいます。connection.ConnectionTimeout = 200にしてても時間切れです・・・(涙) でで、SQLServerのlocalhost端末のAccessからSQLServerにリンクをはって同様のSQL文(普通のSelect文です、Joinも副問い合わせとかもしてないです。)をクエリで実行したところ、結果が返ってくるまで15分くらいかかりました。抽出条件にIndexを張ってないため・・・(事情があってIndexはれないです)こういう場合、どのようにしてVBでRecordSetを取得すればいいのでしょうか?ConnectiontimeoutはrecordSet取得時にも有効ですか?そうだとしたら、connectiontimeoutは好きなだけ大きい値を設定してみてよいのでしょうか?

  • vb.netでSQL serverの接続を行うコーディング

    vb.net (vb 2005)でSQL serverの接続を行うコーディングがよくわかりません。 ADO,もしくはDAOを使うところまでわかったのですが、具体的なコーディングがわかりませんでした。 VBの教本とかではSQL serverではなくAccesへの接続だったので、どうコーディングしてよいか混乱しています。 (ADOの場合とDAOの場合の違い)

  • VB6でSQLServerへADO接続するとOPENがすごく遅いんです。

    お世話になってます。 今、VB6.0で作成したシステム(ADOでACCESS2000に接続)をSQLServerに移行しています。 しかしDBの初回OPEN時に5秒くらいかかってしまいます。 原因を探しているのですが、どうしても見つかりません。 誰かご存知の方がいらっしゃいましたら、ご教示お願いします。 開発環境は以下の通りです。 OS:WindowsXP SP2 開発言語:VB6.0 SP5 データベース:SQLServer2005 ADO:ADO2.5

  • VB6とSQL SERVER 2005のADO接続方法

    VB6とSQL SERVER 2005(Developer Edition)のADO接続方法がわかりません。 今までSQLSERVER2000で開発していたのですが、DBをSQLSERVER2005に 変更したところ接続できませんでした。 以下はSQLSERVER2000時のソースなのですが、 2005の場合ConnectionStringはどうやればいいのでしょうか? --------------------------------------- Dim rs As ADODB.Recordset Dim cn As ADODB.Connection Set rs = New ADODB.Recordset Set cn = New ADODB.Connection cn.ConnectionString = "Provider=SQLOLEDB.1;" & _ "User ID=" & strUsr & ";" & _ "Data Source=" & strSvr & ";" & _ "Password=" & strPass cn.CursorLocation = adUseClient cn.Open --------------------------------------- 初歩的な質問で申し訳ありませんがどなたかお助けください。

  • VB.NET ADO.NETのサンプルについて

    開発環境  Win XP pro  VB.NET  SQL Server 2000 VB.NET ADO.NETのサンプルを探しているのですが まだまだ情報が少なくて見つかりません。 私の探し方が悪いのかもしれませんが、、、 言語の勉強をする際に一番の近道はサンプルを 活用する事だと思います。 サンプル集を集めたWEBページまたは書籍を知っている方 いましたら教えてください。 宜しくお願いします。

  • VB2005からSQLServer2005への接続

    VB2005とSQLServer2005のどちらも製品版をインストールしました。 VB2005よりサーバエクスプローラから接続の追加により自分で作成したテーブルに接続を試みたところ、 以下のようなエラーが発生し接続できません。 (エラー内容)サーバーへの接続を確立しているときにエラーが発生しました。SQL Server2005に接続しているときにこのエラーが発生した場合は、SQL Serverの既定の設定がリモート接続を許可しないようになっていることがエラーの原因である可能性があります。(provider:共有メモリ プロバイダ,error:40-SQL Serverへの接続を開けませんでした) なにかSQLServer側の設定を変更しないと接続できないのでしょうか? どなたかアドバイスお願いします<(_ _)>

  • ADOのレコードセットをローカルにキャッシュする方法

    ご質問させて頂きます。 MS SQL 2000 と VB 6.0 の環境で、ADO接続しています。 SQLサーバに接続し、データをレコードセットに取得したのですが、Connectionをクローズするとレコードセットも参照できなくなってしまいます。 Connectionをクローズ後もレコードセットを使えるようにする方法はありませんでしょうか? どうぞ宜しくお願いします。

  • ADO.NETでOracleへの接続について

    ADO.NET(VB2005)でoracle9iに接続したいのですが、 標準データプロバイダのSystem.Fata.OracleClientが 出てきません。 何か、特別な参照をさせる必要があるのでしょうか? ちなみに、SQLサーバー用のSystem.Data.SqlClientは 出ています。 宜しく御願いします。

  • データベースへの接続方法(どれがよいのか?)

    VB.NETを使用して、SQLServer(2000 or 2005)やORACLE(8 or 9 or 10)に接続しようと思います。 VB.NETの場合、下記の4つの方法(私はこれしか分かりません)がある と思うのですが、どれで接続した方がよいのでしょうか? (総合的にどれがよいのかを知りたいのです) 質問が抽象的すぎて申し訳ありません。 ---------------------------------------------------------------------------------- ◎ = 推奨 ○ = まあまあ推奨 △ = あまり推奨しない × = 接続できない ? = 不明 1つ目: ADODB.Connection(SQLServer=○、ORACLE=○) 2つ目: System.Data.SqlClient.SqlConnection(SQLServer=◎、ORACLE=?) 3つ目: System.Data.OleDb.OleDbConnection(SQLServer=○、ORACLE=○) 4つ目: System.Data.Odbc.OdbcConnection(SQLServer=○、ORACLE=○)