- - PR -
ストアド、トリガの処理速度について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-12-13 14:46
SQLServerに.NETで作成したからプログラムから
SQLでテーブルを更新してから、 ストアドをキックしてそのデータを下に他の2つのテーブルに更新して そのうち1つのテーブルのトリガで3つのテーブルを更新 するのに10000件のデータで4時間ほどかかります。 .netから1つのテーブルに更新するのに約30分かかっていますので、 ストアド、トリガに3時間30分ほどかかっていると思います。 ストアド、トリガの処理が なぜ遅くなってしまっているのか知りたいのですが、 調べても良くわかりません。 これは仕方のないことでしょうか? ご存知の方ご教授いただけますか。 よろしくお願いします。 |
|
投稿日時: 2005-12-13 17:17
ストアドとトリガの詳細な処理内容が分からないとなんともいえないのですが、処理内容によってはありえますね。
どの処理に時間がかかるかは分かりませんが10000件発生するトリガでパフォーマンスに問題が生じているとすると、トリガではなくすべてストアドプロシージャーで処理することにより改善できるかもしれません。 |
|
投稿日時: 2005-12-13 17:24
アドバイス有難うございます。
トリガもストアドのサーバー側での処理なので あまり違わないと思っていたのですが、 トリガよりもストアドプロシージャーのほうが、 処理が早いのでしょうか? 無知で申し訳ありません。 |
|
投稿日時: 2005-12-13 17:36
ストアドプロシージャーの中でひとつのトランザクションと処理で一括して行えばかなり高速化できると思います。
現在は挿入のたびにトリガが発生するようなので呼び出しのオーバーヘッドがかなりかかっているのではないでしょうか。 とはいえこれは推測でしかないのですが・・・。 |
|
投稿日時: 2005-12-13 17:42
Anthyhimeさん、有難うございます。
試してみます。 |
1