- PR -

処理の重いSQLを発行すると画面が固まってしまう

投稿者投稿内容
走り幅跳び
常連さん
会議室デビュー日: 2007/02/27
投稿数: 36
投稿日時: 2007-05-29 11:04
現在C#.netでクライアントソフトを開発中です。
プログラム上で処理の重たいSQL文を発行すると
画面が固まった様な状態になってしまいます。
このような状況は、どの様な方法で回避するのがよろしいのでしょうか?
使用しているDBはOracleで、
System.Data.OracleClientライブラリを使用して接続しています。
もしもし
ぬし
会議室デビュー日: 2004/10/15
投稿数: 280
投稿日時: 2007-05-29 11:16
引用:

なごやさんの書き込み (2007-05-29 11:04) より:

プログラム上で処理の重たいSQL文を発行すると
画面が固まった様な状態になってしまいます。
このような状況は、どの様な方法で回避するのがよろしいのでしょうか?




データベースと SQL のチューニング。

補足:
表の構成とか索引の有無以外に初期化パラメータ(特に SGA 周り)の
設定を要確認かと。

_________________
もしもし@RMAN 友の会

[ メッセージ編集済み 編集者: もしもし 編集日時 2007-05-29 11:43 ]
NAO
ぬし
会議室デビュー日: 2001/10/24
投稿数: 1256
お住まい・勤務地: 神奈川のはずれから東京の下町
投稿日時: 2007-05-29 11:20
引用:

もしもしさんの書き込み (2007-05-29 11:16) より:
引用:

なごやさんの書き込み (2007-05-29 11:04) より:

プログラム上で処理の重たいSQL文を発行すると
画面が固まった様な状態になってしまいます。
このような状況は、どの様な方法で回避するのがよろしいのでしょうか?




データベースと SQL のチューニング。




もしもしさんも書いてますが。

素直に発行しているSQLとテーブル構造を見直した方が。
重いって事はテーブルスキャンをしてるとか
複雑な結合条件を指定してるなど

想定できる事は色々あり得ます。


ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2007-05-29 11:26
引用:

なごやさんの書き込み (2007-05-29 11:04) より:

現在C#.netでクライアントソフトを開発中です。
プログラム上で処理の重たいSQL文を発行すると
画面が固まった様な状態になってしまいます。
このような状況は、どの様な方法で回避するのがよろしいのでしょうか?
使用しているDBはOracleで、
System.Data.OracleClientライブラリを使用して接続しています。



その SQL 文は、SQL * Plus から発行しても遅いんじゃないですか?
まずは、その辺の切り分けをされてはいかがでしょうか。
(どうして、アプリが原因だと考えたのかが分からない)
走り幅跳び
常連さん
会議室デビュー日: 2007/02/27
投稿数: 36
投稿日時: 2007-05-29 12:45
説明足らずで申し訳ありません。
実行させるSQLは処理が重い事もありますし、DB設計やチューニング等もありますが、
今回は単純にDBサーバーの性能が低いのが原因だと思います。
SQL Plusで走らせても遅いです。
このような場合、.netの機能等で画面を固まらないようにする方法があるのかなと。
SQL文一括処理型から何度も応答があるような物にして画面再描写等を考えたのですが、
もっと良い方法があるのではないかと思いまして。
Kazuki
ぬし
会議室デビュー日: 2004/10/13
投稿数: 298
投稿日時: 2007-05-29 12:58
非同期呼び出しでいいんじゃ?
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2007-05-29 13:01
先日、副問い合わせの件数が多くて重かったことが。副問い合わせをやめたら問題なくなったようです。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2007-05-29 13:10
引用:

プログラム上で処理の重たいSQL文を発行すると
画面が固まった様な状態になってしまいます。



具体的に、何秒くらいですか?
また、同じ SQL をコマンドラインツールから実行しても同じくらい時間がかかるのでしょうか?

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