- - PR -
ストアドを利用してDataGridを表示するには・・・
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-10-02 17:45
お世話になっております。
ストアドについての質問です。 現在、25万件のレコードをDataGridでWindowsフォームに表示させているのですが、 レスポンスが悪いため、ストアドでどうにかうまくいかないかと研究中です。 解る方がいらっしゃったらどうかよろしくお願いします。 | ||||
|
投稿日時: 2003-10-02 20:04
ストアドを使うサンプルならMSDNにいっぱいありますよ。
http://www.microsoft.com/japan/msdn/howto/ でもクエリーのレスポンスもありますが、25万レコードをネットワーク経由で 取得する時と、Bindする時のレスポンスも結構悪いのでは? とりあえずデバッグコードを埋め込んでポイントでの経過時間を見てはどうでしょう。 | ||||
|
投稿日時: 2003-10-03 08:59
こんにちは。 この手の問題は、原因がいろいろ考えられます。 1.件数が多い 件数が多いと、当然持ってくるのに時間がかかります。これはストアドプロシージャ に下から間然できる問題ではありません。全件を引っ張ってくる必要があるのか 検討し、ないならORDER BY句とROWNUMなどによって件数を絞り込んで 持ってくる方法をとります。 2.テーブルの設計が悪い 適切に正規化されたり、インデックスがつけられていないと、検索に時間が かかります。昔の私の上司のように「インデックスをつけると遅くなる」と、 意味不明なことを曰う人もいますが、適切にインデックスがつけられたり、 正規化されているか、検証しましょう。 ※確かにINSERTは速度が低下しますが、INSERTの回数とSELECTの回数と、 ※どちらが多く、またどちらが待てないか考えれば、自ずと答えは出てきます。 3.SQL文が悪い テーブルが適切に設計されていても、SQL文が悪くてインデックスを使わないような ことになっていると、やはり遅くなります。Oracleの場合ならヒント句をつける、 OR結合をUNION ALLなどに置き換える、検索条件を見直すなど、 SQL文のチューニングを行いましょう。 4.検索条件そのものが悪い テキストの後方一致、中間一致などは速度を低下させる元です。このような検索が ある場合は、その他の検索結果を一時表に入れて、そこから再検索することで スピードアップする可能性があります。 どうも1のような気がするのですが??? | ||||
|
投稿日時: 2003-10-03 17:07
ありがとうございました。
ビューなども使用してなんとかがんばってみます。 この場合はストアドはあまり意味がないようですね。 | ||||
|
投稿日時: 2003-10-06 14:02
近況をご報告いたします。
オラクル(データベース)でCreate Index....というコマンドを打ち込み テーブルにインデックスを付けたところ、ものすごく早く表示することが できるようになりました。 ありがとうございました。 |
1