• 締切済み

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では遅延するのか全く原因がわかりません。 私自身も色々と確認をしているのですが、 過去の経験則や、ここを確認すると良いなど 調べるための情報がありましたらご提供頂けませんでしょうか? 宜しくお願い致します。

みんなの回答

  • norayuni
  • ベストアンサー率79% (27/34)
回答No.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 -----

megumi1122
質問者

補足

確認が遅くなりまして、すみません。 >Viewとなると、正直提示された情報だけでは原因特定は厳しい そうですよね…、わかり辛い質問で申し訳ありません。 >まずは実行計画を確認してみると良いかと思います。 実行計画も確認してはいるのですが、 確かに変化はあるものの凡そ同じ雰囲気でそれぞれのテーブルが位置づけされている様な気はしています。 >後はもう少し情報を増やす意味で次のオプションをつけてみるのもいいかと なるほど、オプションですか。 気が付かなかったです、情報とてもありがたいです。 早速試してみようと思います。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

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

megumi1122
質問者

補足

確認が遅くなりまして、すみません。 確かに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になっているかと思っています。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

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

megumi1122
質問者

補足

回答ありがとうございます。 お察しの通り、TestViewは 幾つかのテーブルをJOINしたViewになります。 記載が足らずすみません。

関連するQ&A