Date: Sat, 10 Mar 2001 02:42:07 +0900
From: "deml" <who@example.co.jp>
サイトーです。
> ストアードプロシージャについてですが、
> クライアントから処理命令を出し、
> サーバーで実行し、正常終了か否かだけ受け取れば
> ネットワークを流れる情報は、ほんの少しとなり、
> 無駄なデータ転送時間がなくなり、レスポンスが
> 良くなると考えております。
> できるかぎり利用していこうと考えております。
>
> 私の今回のシステムでは、クライアントで大量の帳票を
> 打ち出さなければなりません。どういうことかというと、
> どうしてもサーバーからクライアントに送られる情報量が多くなり、
> ストアードの良さが行かせません。
>
> みなさんは、どのような場合にストアードを利用されるのですか?
>
> クライアントに戻ってくる情報が、
> 少量データの処理って具体的にどのようなものなのでしょうか?
確かに、「ストアドにしてもsql文を発行しても、クライアントが必要と
しているレコード数に変わりはないので」と考えると「何で?」と
考えてしまうかもしれません。私もそうです。
但し、例えば1000レコード得る為の条件を取り出すために、1つのsqlでは
記述出来ないような複雑な条件である様な場合、ADOやsql文を発行して
別のいろいろなテーブルを参照したりするより、まとめてストアドにして
おいた方がクライアントとサーバ間の情報量を少なく出来ますよね?
あと、ネットワークトラフィックの他にも
1.プログラムの更新が楽。
クライアントのプログラムを修正すると全てのクライアントに配布しなければ
なりませんが、ストアドならサーバだけでOKです。
2.高速実行
ストアドは、サーバ側にいわばコンパイルされた状態で保存されているので
クライアントでsql文を作成して発行するより高速。
3.高性能サーバの活用
スペックの低いクライアントであってもサーバが十分に高性能であれば、
その恩恵を受けられる。
まだまだ他にもいろいろとあると思いますが、ケースバイケースですかね。
1.の場合も、変更内容によっては、ストアドとクライアントの両方を同時に
更新しなければならないケースも考えられますし、2.もADOの性能もそこそこ
良いとも聞いておりますし、アドホックなクエリも「コンパイル結果」を
キャッシュしておいて再利用するという機能などもあるそうですから。
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|