- PR -

SELECT文のレスポンス違い

1
投稿者投稿内容
ゴンタロー
会議室デビュー日: 2007/10/12
投稿数: 3
投稿日時: 2007-10-12 23:27
初めて投稿させて頂きます。宜しくお願い致します。
MSSQL及びADOは初心者です。

開発環境として
開発ツール:VB6+ADO
DB:MSSQL7・MSSQL2000
DB-LINK:MSSQL7⇒MSSQL2000

SELECT文でTABLE-AとDB-LINK越しのTABLE-Bを使用しているのですが、
VBからのSQL発行とクエリアナライザからのSQL発行では、レスポンスが全然違います。
目測ですが、VB:約3分弱 クエリアナラザ:約5秒

いろいろと調べてはいるのですが、原因及び解決策がよくわかりませんので、
投稿させて頂きました。
ご教授の方、宜しくお願い致します
 
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2007-10-13 07:54
さかもとと申します。

1:VB:約3分弱 とありますが、これは「SELECT→○○処理(Readで回したり色々)完了」までの時間ではなく、「SELECT→1件目の返答」までの時間ということでしょうか?

2:対象件数を絞ってみても同じような結果でしょうか?

いかがでしょうか?
_________________
------------------------------------------
拝啓、さかもとと申します♪
ゴンタロー
会議室デビュー日: 2007/10/12
投稿数: 3
投稿日時: 2007-10-15 13:17
さかもとさま、返信有難うございます。
返信が遅くなり申し訳ありません。

>1:VB:約3分弱 とありますが、これは「SELECT→○○処理(Readで回したり色々)完了」までの時間ではなく、「SELECT→1件目の返答」までの時間ということでしょうか?

パラメータを使用しています。
Set objCmd.ActiveConnection = objADO
objCmd.CommandText = "SELECT 〜 "
objCmd.CommandType = adCmdText

省略 パラメータセット

Set objRS = objCmd.Execute

上記の処理(Execute処理)の時間です。


>2:対象件数を絞ってみても同じような結果でしょうか?

同じ結果です。

なお、LINK先のテーブルをLINK元にコピーし、単一DBでVBでSELECTすると約1秒で返ってきますで、RECORDSETで時間が掛かっているわけでもなさそうです。
VBとクエリアナライザとの唯一の違いは、パラメータを使用しているところです。




さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2007-10-15 23:02
さかもとです。

リンクサーバー自体は経験したことないのですが、調べてみるといくつかヒットしましたので。

まずはMSDN http://msdn2.microsoft.com/ja-jp/library/ms188279.aspx
同じような内容の質問が以前あったようです。

もうひとつはFIX http://support.microsoft.com/kb/275536/ja

ちなみに2000側のサービスパックはSP4まで当たっていますか?

既に調査済みのURLであればすいません。


_________________
------------------------------------------
拝啓、さかもとと申します♪
ゴンタロー
会議室デビュー日: 2007/10/12
投稿数: 3
投稿日時: 2007-10-16 09:34
さかもと様、返信有難うございます。

また、貴重な情報は別途参考にさせて頂きます。

SP4の件、当てています。

なお、その後の調査等の結果、パラメータ付SQL文(なんていうのかよく分かりませんが)なるものを使用しています。その辺が相当怪しく(直接条件地をSQLに入れてEXECUTEすれば5秒程で返ってきます)、再度いろいろと調べてみます。

ストアド系で同じような事象をどこかで拝見にしましたので、見つけ次第UP致します。

さかもと様、いろいろと有難うございました。
1

スキルアップ/キャリアアップ(JOB@IT)