データベース

ストアドプロシージャとトリガを学ぼう!

「ストアドプロシージャ」って言葉はシステム関係、特にデータベースに携わっている多くの方は何となく聞いたことがあると思います。

「stored」って単語があるので、何かを貯め込むんだろうなー、って感じになると思いますが、今回はストアドプロシージャのメリットをまとめてみました!

 

ストアドプロシージャの利用目的とは?

先ずストアドプロシージャ―とは?ですが、SQLを用いた一連の処理をデータベースで行うプログラムのことです。このストアドプロシージャを用いるとデータベースの処理を一つずつ行うのではなく、ひとまとめの処理として実行できるようになります。

ストアドプロシージャは条件分岐順次処理など、SQLでの処理を実行するプログラム機能をもちます。CREATE PROCEDURE分でストアドプロシージャを定義し、それを呼び起こすことで、一連の処理を消化します。

ストアドプロシージャのイメージ

メリットは?

ストアドプロシージャを使うことによるメリットは大きく二つあります 。

処理の高速化

ストアドプロシージャは作成されたときにプリコンパイルという機械語に近いかたちに変換されるため、SQL文を一つずつ呼び出す場合に比べて処理が高速になります

②通信量の削減

ストアドプロシージャは一連の処理があらかじめデータベースサーバに登録されており、クラインとはそれを呼び出すだけで良いの、SQLの数だけ命令を出すときに比べサーバとクライアント間の通信量が減ります

 

トリガとは?

あるイベントがデータベースで起きたときに実行されるストアドプロシージャのことをトリガと呼びます。

トリガを使うと、あるテーブルに変更があった際に別のテーブルに対して連動する形で変更を行うことができます。

つまり、テーブルの行に対して、追加・削除・更新のイベントが発生した時にそれとトリガとして使うことができます。

ただし、トリガは、一つずつ順番にしか処理できないので、トリガの実行数が増えると処理が遅くなるというデメリットがありますので、キレイな設計が重要になりますね。

 

まとめ

今回は「ストアドプロシージャとトリガ」についてまとめてみました。

ストアドプロシージャを使うとデータベースの処理が高速化できるため、性能が重要なシステムにおいてはストアドプロシージャを上手に使う設計が必要になりますね。

また、トリガはストアドプロシージャの一種と呼べますが、なんでもかんでも設定するとデータベースの性能が低下するので注意しましょう!

以上です!

-データベース