今日学んだこと:ストアドプロシージャに関して
概要
今日はストアドプロシージャについて学んだ。
ストアドプロシージャ
ストアドプロシージャとは、データベースに対する複数の命令をまとめて、 RDBMS に保存する「ストアドプログラム」という機能の一種。 ストアドプログラムにはもうひとつ「ストアドファンクション」がある。 両者の違いは、ストアドプロシージャが実行結果を返すのみで 戻り値を返さないのに対してストアドファンクションは戻り値を返すこと。
ストアドプロシージャのメリット
・複数のSQLをまとめることで、一回の呼び出しで処理が実行できるようになり、 サーバーの負荷の軽減、ネットワークの帯域の節約が期待できる
・繰り返し使用されるSQLをストアドプロシージャにしておくことで、 SQLを実行するコードが冗長になることを防ぎ、 アプリケーションの開発を効率化することができる
・すでに構文解析が完了した状態で保存するため、 アプリケーションから実行する場合よりも高速にSQLを実行することができる
・アプリケーションに影響を与えずにSQLを変更することができる
・アプリケーションからデータベースへのアクセスを制限する (アプリケーションに直接データを操作させるのではなく、 ストアドプロシージャを呼び出しさせる)ことによって データベースのセキュリティが強化できる
ストアドプロシージャのデメリット
・ストアドプロシージャの記述に使われる言語は、 それぞれのデータベース製品によって異なっているため、 使用するデータベース製品が異なるシステム間ではプログラムの再利用がしにくい
・アプリケーションの変更によってストアドプロシージャの変更も必要になり、 開発工数が増大する場合がある
・ストアドプロシージャの数が増えすぎると、データベースサーバーに負荷がかかる
参考文献・リンク
https://products.sint.co.jp/siob/blog/storedprocedure