こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Select文の遅延

以下の.net関数を使用して、Select文を作成し
SqlServerからデータを抽出しています。

http://msdn.microsoft.com/ja-jp/library/zxkb3c3d(v=vs.110).aspx
http://msdn.microsoft.com/ja-jp/library/system.data.common.dbdataadapter.selectcommand(v=vs.110).aspx

条件を変え二つのSelect文を作成したところ、
後者だけが極端に遅延しタイムアウトしてしまいます。

(1)Select ID From TestView Where ID = 0 ※ID列はint型
(2)Select ID From TestView Where ID = 1 ※ID列はint型

Select対象となるデータ数(TestView)はかなりの量がありますが、
ID = 0、ID = 1 によって抽出されるデータ自体はどちらも10件程度です。

なぜID = 0ではすぐに抽出でき、ID = 1では遅延するのか全く原因がわかりません。

私自身も色々と確認をしているのですが、
過去の経験則や、ここを確認すると良いなど
調べるための情報がありましたらご提供頂けませんでしょうか?

宜しくお願い致します。

投稿日時 - 2014-01-09 22:13:27

QNo.8422547

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

12人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(3)

ANo.3

Viewとなると、正直提示された情報だけでは原因特定は厳しいので、
まずは実行計画を確認してみると良いかと思います。

後はもう少し情報を増やす意味で次のオプションをつけてみるのもいいかと。

-----
set statistics io on
set statistics time on
set statistics profile on
go

<調査したいクエリ>
go

set statistics profile off
set statistics time off
set statistics io off
go
-----

投稿日時 - 2014-01-13 03:28:19

補足

確認が遅くなりまして、すみません。

>Viewとなると、正直提示された情報だけでは原因特定は厳しい
そうですよね…、わかり辛い質問で申し訳ありません。

>まずは実行計画を確認してみると良いかと思います。
実行計画も確認してはいるのですが、
確かに変化はあるものの凡そ同じ雰囲気でそれぞれのテーブルが位置づけされている様な気はしています。

>後はもう少し情報を増やす意味で次のオプションをつけてみるのもいいかと
なるほど、オプションですか。
気が付かなかったです、情報とてもありがたいです。
早速試してみようと思います。

投稿日時 - 2014-01-17 20:01:26

ANo.2

じゃあ、viewからSelectするSQL文ではなくて、
View定義のSQL文が怪しいのでは?

投稿日時 - 2014-01-11 14:35:49

補足

確認が遅くなりまして、すみません。

確かにView定義側の記載が怪しい可能性もあります。
しかしながら、Viewの中身としましては一般的(…かどうかは分かりませんが…)な、

SELECT A.ID
FROM TABLE_A A
INNER JOIN TABLE_B B ON A.ID = B.ID
INNER JOIN TABLE_C C ON B.ID = C.ID


特に捻った形ではないSQLになっているかと思っています。

投稿日時 - 2014-01-17 19:58:13

ANo.1

TestView はテーブルですか?20レコードの?
名前にviewがあるところから、実はviewなんですか?

投稿日時 - 2014-01-09 22:59:30

補足

回答ありがとうございます。

お察しの通り、TestViewは
幾つかのテーブルをJOINしたViewになります。

記載が足らずすみません。

投稿日時 - 2014-01-10 09:37:20

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-