mysql:13763
From: "Susumu.Hirai" <"Susumu.Hirai" <s_hirai@xxxxxxxxxx>>
Date: Fri, 23 Feb 2007 15:20:21 +0900
Subject: [mysql 13763] Re: 処理速度について
solさん、お世話になります。平井です。 Windowsバージョン記載していませんでしたね。WindowsXPProSP2を使っています。 ODBCデータソースアドミニストレータで接続プールという項を見つけましたが、それでしょうか? MySQL ODBC3.51Driverで「このドライバに接続をプールする」で60秒設定しました。テストしてみたんですが、状況変わらずテスト結果は下記の通りです。 オープン時間:2336 SQL時間1回目:3558 SQL時間2回目:2514 閉じる時間:66 単位はmsecです。 少し分かったことが・・・。VB6のソース内でドライバなどを指定するより、ユーザーデータソースを設定して利用した方が少し早いと言うことが分かりました。 DBConn.Open = [データソース名] という感じで・・・。テスト結果は下記の通りです。 オープン時間:791 SQL時間1:2493 SQL時間2:1988 閉じる時間:99 オープン時間はソフトを起動したときだけなのでこれでも十分ですが、SQLの処理時間はPHPと比べて圧倒的に遅いです。みなさんもこんなもんでしょうか??? ----- Original Message ----- From: "kurokawa" <ml@xxxxxxxxxx> To: <ml@xxxxxxxxxx> Sent: Friday, February 23, 2007 2:50 PM Subject: [mysql 13762] Re: 処理速度について > 平井さん > > solでございます。 > > WindowsのODBC設定項目でコネクションプール設定が見つかると思います。 > (コントロールパネルの中のODBCの該当箇所) > > PHPは標準で・・・ > > > MySQLとても高速ですが、コネクションを新規に張るときは若干 > 処理に時間を要します。 > > 立て続けにコネクションの接続切り離しを繰り返しますと > その処理時間が最大だったりすることが多いです。 > > 名前解決に問題があるときは、taimeout待ちするので > だいたい30秒なにもせず、そこからコネクション張りに行く > そんな挙動になります。 > > IPアドレスで指定されているので、名前解決は無縁そうです。 > (oracleの場合は別ですが) > > > ADOって長く使っていないのですが、接続時、全データ転送とかは > しないんですよね!? > access系エンジン使ったとき、その都度全データ転送されたような・・・ > > > > > Susumu.Hirai wrote: >> solさんすみません、名前記載してませんでしたね。 >> 平井と申します。改めてよろしくお願いします。 >> >> コネクションプールはVB6では使用できないとか・・・。ADOならできそうな気も >> しますが。PHPで組むときもコネクションプールとか気にしたことないので、そ >> こら辺も色々調べてみます。 >> 妹尾さんありがとうございます。ついでにpingも治りました。MySQLへはもちろ >> ん自機なので<1msecでした。 >> ソフトウェアの構成は以下のようになっています。フォームロードの時点で「開 >> ける」を行い、起動中は「SQLする」でいくつものデータを処理して、ソフトク >> ローズで閉じる処理をしています。 >> >> '開ける >> Set DBConn = CreateObject("ADODB.Connection") >> Set DBRS = CreateObject("ADODB.Recordset") >> DBConn.Open = "DRIVER={MySQL ODBC ・・・" >> >> 'SQLする >> DBRS.Open SQL文, DBConn >> Set SQL_String = DBRS.fields >> DBRS.Close >> >> '閉じる >> Set DBRS = Nothing >> Set DBConn = Nothing >> >> マシンスペック等は以下の通りです。ちなみにPHP+MySQLでは問題なく、長くて >> も0.006秒以下の処理がVB6+MySQLなら3.4秒かかります。こんなものでしょうか? >> >> CPU:PentiumM1.1 >> RAM:768MB >> MySQL:5.0.18-nt >> データベースのデータサイズ:96KB >> >> >> ----- Original Message ----- From: "kurokawa" <ml@xxxxxxxxxx> >> To: <ml@xxxxxxxxxx> >> Sent: Friday, February 23, 2007 11:12 AM >> Subject: [mysql 13758] Re: 処理速度について >> >> >>> Susumu.Hiraiさん >>> >>> solでございます >>> >>> コネクションプール設定していますか? >>> >>> >>> >>> >>> P.S. >>> >>> 名前くらいは名乗りましょう >>> DBのスペック(容量等)、OS、マシンスペック明示しましょう >>> >>> >>> >>> Susumu.Hirai wrote: >>>> いつもお世話になります。 >>>> VB6+MySQL+ADOでソフトを構築していますが、処理が遅すぎて困っています。基 >>>> 本的に3つの関数を作って起動したらSQL_StringでSQLを投げて取得するような >>>> やり方をしていますが、★印のあるところで3秒程度かかります。 >>>> PHP+MySQLで組む場合と速度が歴然と違いますが、何かいい策はありませんで >>>> しょうか?最悪VB6+MySQL+PHPで組み直そうかと考えていますが・・・。 >>>> >>>> Function SQL_Open() >>>> 'SQL接続をオープン >>>> Set DBConn = CreateObject("ADODB.Connection") >>>> Set DBRS = CreateObject("ADODB.Recordset") >>>> DBConn.Open = "DRIVER={MySQL ODBC 3.51 Driver};" + _ >>>> "SERVER=127.0.0.1;" + _ >>>> "DATABASE=****;" + _ >>>> "UID=****;" + _ >>>> "PASSWORD=****;" + _ >>>> "useUnicode=true & >>>> characterEncoding=SJIS;" + _ >>>> "OPTION=16834;STMT=set names sjis" >>>> End Function >>>> >>>> Function SQL_Close() >>>> 'SQL接続を閉じる >>>> Set DBRS = Nothing >>>> Set DBConn = Nothing >>>> End Function >>>> >>>> Function SQL_String(strSQL As String) As Object >>>> 'SQLを実行してフィールドを返す >>>> On Error Resume Next >>>> DBRS.Close >>>> DBRS.Open strSQL, DBConn '★ココが時間かかる >>>> Set SQL_String = DBRS.fields >>>> On Error GoTo 0 >>>> End Function >>>> >>> >>> >> >> > >
13755 2007-02-23 10:29 ["Susumu.Hirai" <s_hi] 処理速度について 13756 2007-02-23 10:37 ┣[遠藤 俊裕 <endo@xxxx] 13757 2007-02-23 11:10 ┃┗["Susumu.Hirai" <s_hi] 13759 2007-02-23 11:28 ┃ ┗[妹尾純一 <j.senoo@xx] 13758 2007-02-23 11:12 ┣[kurokawa <ml@xxxxxxx] 13761 2007-02-23 12:18 ┃┗["Susumu.Hirai" <s_hi] 13762 2007-02-23 14:50 ┃ ┗[kurokawa <ml@xxxxxxx] -> 13763 2007-02-23 15:20 ┃ ┗["Susumu.Hirai" <s_hi] 13764 2007-02-23 16:07 ┗[Hiroshi Nagasaka <h-] 13765 2007-02-23 16:22 ┗["Susumu.Hirai" <s_hi] 13766 2007-02-23 17:43 ┗[遠藤 俊裕 <endo@xxxx] 13768 2007-02-23 21:19 ┗["Susumu.Hirai" <s_hi]