interlude

プログラミングや私的なこと

ストアドプロシージャは使うべきか

結論

便利だとは思うけど、結局SQL書けた方が幅広く対応出来ると思うので、積極的に使おうとは思わない。

ストアドプロシージャとは

ストアドプロシージャはデータベースの一連の処理手順をまとめたもの。
プログラミングでいうところのメソッド

メリット

1.アプリとの通信速度が早くなる
2.プログラマが楽になる

うーんざっくり笑
詳細は以下。

1,アプリとの通信速度が早くなる
これはSQL構文解析コンパイルが終わっているから。
サッカーで例えるとベンチの選手がウォームアップして、いつでも行けます!みたいな状態です。

2,プログラマが楽になる
一度定義したら長いSQLを書かなくてもいいからです。
夫婦で例えると「テーブルの上の新聞取ってきて」で通じていたものが、「アレ」で通じるようになるようなもんです。

なんだ、ストアドプロシージャいいことばかりじゃん。これは使わない手は無い!
・・・いやいや、でもそんな上手い話ばかりじゃないんでしょ?と思ったらありました。

デメリット

・DBに負荷がかかる

サーバー側にストアドプロシージャが保存されるため、ストアドプロシージャ数が増えると負荷がかかるんですね。

理想的な使い方

用途としてはよく使う処理だけストアドプロシージャにまとめる、という使い方が正しい。

ストアドプロシージャ機能を使えるDB

MySQL
PostgreSQL
Firebird
Oracle
SQL Server
DB2
等。


具体的な設定の仕方は以下が参考になる。
SQL実践講座(20):ストアドプロシージャの作成 - @IT