接続プール、コネクションプールについての質問

このQ&Aのポイント
  • お使いの開発環境であるVB.net2005(ADO.net)およびSQLServer2005において、接続プールやコネクションプールについて理解したいという質問です。
  • 接続プールとは、DBコネクションを共有してパフォーマンスを向上させることを目的とした仕組みです。
  • また、コネクションプールとは接続プールの別名であり、同じ意味で使用されることが多いです。
回答を見る
  • ベストアンサー

接続プール、またはコネクションプールを教えて下さい。

「接続プール」、「コネクションプール」について質問があります。 MSDNのサイトで「接続プール」に関するサイトを読んでみましたが難しくてあんまり理解できませんでしたが何となく何ですがDBコネクションを共有して使ってパフォーマンスをあげるっていうのはわかりましたが・・・間違ってたらすみません m(_ _)m 申し訳ありませんがこんな私でも簡単にわかるように説明してくれませんでしょうか? 「接続プール」と「コネクションプール」って同じですか? 開発環境は以下のとおりです。 言語:VB.net2005(ADO.net) DB:SQLServer2005 宜しくお願いします。

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

  • ベストアンサー
  • ape5
  • ベストアンサー率57% (85/148)
回答No.1

おそらく「接続プール」と「コネクションプール」は同じでないかと思います。(使っているところを見ているわけではないので違っている可能性もあります) 接続プールとは、ある接続情報と資格情報でいったん接続し、Closeを呼び出してもコネクション(SQLServerとならSqlConnection)を切断しても、実際にはすぐに切断されずにプーリングされます。で、先ほどと同じ接続情報と資格情報で接続しようとすると、先ほどプールされたコネクションが再利用されます。 このとき0から接続処理をするわけではないので、パフォーマンスがあがるという話だと理解しています。 もし時間があるなら、「プログラミングADO.NET 2.0」がお勧めです。 http://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0Microsoft-ADO-NET2-0-%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%BD%E3%83%95%E3%83%88%E5%85%AC%E5%BC%8F%E8%A7%A3%E8%AA%AC%E6%9B%B8-Microsoft-Visual/dp/4891005491/ref=pd_bbs_1?ie=UTF8&s=books&qid=1196899929&sr=1-1

Rx78-2_G
質問者

お礼

お礼が遅くなりすみません。 教えていただいた書籍を読んでみます。 ありがとうございました。

関連するQ&A

  • ルータを挟んだコネクションプール

    [Tomcat利用のWebアプリケーションサーバ]~[F/W兼ルータ]~[DBサーバ] という構成のシステムがあります(サーバは互いに別サブネット)。 ここで、Webサーバ~DBサーバ間にコネクションプールを使うか否かで内輪モメしています。 私の考えでは、「無通信のコネクションを張りっぱなしにすると、ルーティングテーブルが一定時間で消去されて通信不能になり、しかもWebアプリはそれを検知できない」なんですが、いまいち自信がありません。 パフォーマンス上、コネクションプールが欲しいのも事実なんですが、この構成で実現できるものなのでしょうか?

  • コネクションプールについて

    コネクションプール有とコネクションプール無でDB接続・切断を繰り返したときに どれくらい差があるか試してみようと思いWebアプリ上(フレームワークにStruts2を使用)で 下記コードを実行してみました。 dbcpConnectメソッド(コネクションプール有) と jdbcConnectメソッド(コネクションプール無) をそれぞれ千回づつループで回して実行してみました。 結果は 【コネクションプール有】実行にかかった時間:157384 ミリ秒 【コネクションプール無】実行にかかった時間:158760 ミリ秒 で大差はありませんでした。 コネクションプールを使用するともう少し早いと思っていたのですがそのようなことはないのでしょうか。 public String test4() { // コネクションプール有の接続 long start = System.currentTimeMillis(); for(int i=0; i< 1000; i++) { dbcpConnect(); } long stop = System.currentTimeMillis(); System.out.println("実行にかかった時間は " + (stop - start) + " ミリ秒です。"); // コネクションプール無の接続 start = System.currentTimeMillis(); for(int i=0; i< 1000; i++) { jdbcConnect(); } stop = System.currentTimeMillis(); System.out.println("実行にかかった時間は " + (stop - start) + " ミリ秒です。"); return "jstl4"; } public void dbcpConnect() { Connection con = null; try{ Context context = new InitialContext(); //DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/library"); DataSource ds = (DataSource)context.lookup("java:/comp/env/jdbc/dhcpTest"); con = ds.getConnection(); Statement stmt = con.createStatement(); String sql = "SELECT * FROM test.test"; ResultSet rs = stmt.executeQuery(sql); } catch(Exception e) { System.out.println("Error"); } finally { try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } } public void jdbcConnect() { Connection con = null; try{ con = DriverManager.getConnection("jdbc:mysql://localhost", "root", "root"); Statement stmt = con.createStatement(); String sql = "SELECT * FROM test.test"; ResultSet rs = stmt.executeQuery(sql); } catch(Exception e) { System.out.println("Error"); } finally { try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } }

    • ベストアンサー
    • Java
  • VB6でSQLServerへADO接続するとOPENがすごく遅いんです。

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

  • DBの接続について

    はじめまして VB初心者です DBに接続されているのかを判断したいのですが 何かいい方法がありませんか? 開発言語はVB6.0 DBはオラクル9iです よろしくお願いします。

  • 接続型と非接続型ではどちらが良いか

    お世話になります。 社内で使うシステムを開発しています。 最近、やっと開発ツールをVB6からVB2005へ移行しました。 そこで質問ですが、データベースへの接続で、「接続型」と「非接続型」ではどちらが処理がスムーズなのでしょうか。 環境はクライアントがXP、サーバーはWindows2003Server、データベースはSqlServer2000。 各営業所間はVPNで結ばれています。クライアントの数は30位です。 今まで開発して使用しているシステムはVB6で作られたものなので、システムの起動と同時にデータベースに接続し、終了時に切断する「接続型」です。 せっかくADO.NETに移行するのだから、「非接続型」にしようかと思いますが、WEBを使用するわけでもないので、処理が早い方を使おうと思います。 よろしくお願いいたします。

  • 複数のデータベース使用方法

    tora0125と申します。よろしくお願い致します。 データベース:SQLServer2000とSQLServer2005CTP 開発:VisualStadio.NET2003 言語:C# データベースDB_AとDB_Bというものがあり、随時アクセスするデータベースを変更したいと思っております。 cn.ConnectionString = "Data Source=LOCAL" + "; User Id=TEST" + "; Password=TEST" + "; initial catalog=DB_A" + "; persist security info=True;"; 上記のようにコネクションの設定を行っております。主となるデータベースはDB_Aです。 その後、必要となったときにDB_Bにコネクションを変更する方法をどなたかご教授下さい。 拙い文章でわかりずらい箇所があると思いますが、どうぞよろしくお願い致します。 カテゴリー違いでしたら申し訳ございません。

  • CSVデータの取り込み

    開発環境 言語 VB6.0 DB  ACCESS 一つ目は、CSVデータをACCESSに保存したいのですがどうしたらいいですか? 開発環境 言語 VB6.0 DB  ORACLE9i 二つ目は、CSVデータをORACLE9iに保存したいのですがどうしたいいですか? どうかよろしくお願いします。

  • SQLで同じDBに対し2つのコネクションをもてる?

    SQLServer2005ExpressEditionとVB.NETで、ひとつのDBに対して、コネクションを2つ持つことは可能ですか?または、問題などおこりませんか? 以下のような感じでやってみたところ、両方ともに接続はできましたが、何か問題をはらんでいないかお気づきの方いらっしゃいましたらご教示いただけると助かります。 ' 接続文字列を生成する Dim stConnectionString As String = "接続情報" ' SqlConnection の新しいインスタンスを生成する (接続文字列を指定) Dim cSqlConnection As New System.Data.SqlClient.SqlConnection(stConnectionString)   Dim cSqlConnection1 As New System.Data.SqlClient.SqlConnection(stConnectionString) ' データベース接続を開く cSqlConnection.Open() cSqlConnection1.Open() ' 実処理   ・   ・   ・ ' データベース接続を閉じる cSqlConnection.Close() cSqlConnection.Dispose() cSqlConnection1.Close() cSqlConnection1.Dispose()

  • WiFiの接続切り替えを自動化したい

    WiFiの接続を自動で切り替えるプログラムを作成したいと考えております。 環境としてOSはWindows7、開発言語は.Net系です。 MSDNにてWindowsAPIを調べた限りでは現在接続しているSSIDを取得する方法はあるみたいですが、 接続の方法については見つけることができませんでした。 WiFiの接続をプログラムから制御する方法はあるのでしょうか? 参考サイトやツール等でも構いません、ご教授頂けないでしょうか。

  • SQLServer学習の進め方

    仕事でOracleからSQLServer2005へ移行します。 DB関係はほぼ初心者に近いレベルですが、時間がなく効率よく学習したいと思っています。 その為、SQLServerの学習お勧めサイトか、お勧め良本はないでしょうか? なんでもいいので教えてください。 MSDNはややこしくて見にくいですが、やっぱMSDNを見た方がいいのでしょうか?皆さんはどの様にSQLSERVERを学んでいますか?

専門家に質問してみよう