データベース PR

【応用情報】ストアドプロシージャについて解説

記事内に商品プロモーションを含む場合があります

この記事ではストアドプロシージャについてIT初心者にも分かりやすく解説します。

ストアドプロシージャ

  • 一連のSQLをまとめたプログラムをプロシージャと呼び、DBMSにプロシージャを保存する。
  • アプリはDBMSに保存されたプロシージャを呼び出すことで、SQLを実行できる。
  • ストアドプロシージャを使うことで、クライアント-サーバ間の通信負荷を下げることが出来る

応用情報ではストアドプロシージャに関する問題が出題されます。是非最後までご覧ください。

ストアドプロシージャ

ストアドプロシージャとは、データベース管理システム(DBMS)の機能の1つで、一連の流れで実行する複数のSQL文を1つのプログラムにまとめて、DBMSに保存することです。

アプリはプロシージャを呼び出せば一連のSQLを実行出来るため、クライアントとサーバ間の通信回数が減り、ネットワーク負荷を軽減できます

応用情報技術者試験での出題例

令和6年度春期問25

応用情報技術者
午前試験 令和6年度春期問25

ストアドプロシージャの利点はどれか。

ア アプリケーションプログラムからネットワークを介してDBMSにアクセスする場合,両者間の通信量を減少させる。

イ アプリケーションプログラムからの一連の要求を一括して処理することによって,DBMS内の実行計画の数を減少させる。

ウ アプリケーションプログラムからの一連の要求を一括して処理することによって,DBMS内の必要バッファ数を減少させる。

エ データが格納されているディスク装置へのI/O回数を減少させる。

正解と解説

正解は”ア”

ア DBMSに保存したプロシージャを呼び出すだけで、一連のSQLが実行されます。普通にSQLを実行すると、何回もクライアント-サーバ間で通信する必要がありますが、ストアドプロシージャを使うと1回の通信でOKになり、通信量を減少出来ます。なので正しいです。

イ 実行計画とはSQLを実行する際、どうすれば効率的に処理出来るのかを計算して導いた計画のことです。SQLを実行する度にDBMSが実行計画を作成するので、1回1回SQLを流しても、プロシージャを使っても、実行計画の回数は変わりません。なので誤りです。

ウ バッファとはSQLを実行した際、一時的に結果を保管しておく領域のことです。SQLを実行する度にバッファが必要になるので、プロシージャを使ってもバッファ数は変わりません。なので誤りです。

エ SQLが実行される回数自体は変わらないので、データが格納されているディスク装置へのI/O回数は変わりません。なので誤りです。

令和5年度春期問27

応用情報技術者
午前試験 令和5年度春期問27

クライアントサーバシステムにおけるストアドプロシージャの記述として,誤っているものはどれか。

ア アプリケーションから一つずつSQL文を送信する必要がなくなる。

イ クライアント側のCALL文によって実行される。

ウ サーバとクライアントの間での通信トラフィックを軽減することができる。

エ データの変更を行うときに,あらかじめDBMSに定義しておいた処理を自動的に起動・実行するものである。

正解と解説

正解は”エ”

ア SQLを集約したプロシージャを呼び出すだけでOKになるので、一つずつSQL文を送信する必要が無くなります。なので正しいです。

イ プロシージャを呼び出す時はCALL文を使います。なので正しいです。

ウ SQLを集約したプロシージャを呼び出すだけでOKになるので、サーバとクライアント間の通信負荷を軽減出来ます。なので正しいです。

エ プロシージャは自動的に起動・実行しません。ストアドプロシージャを使う場合は呼び出しを行う必要があります。なので誤りです。