ストアドプロシージャの用途としては、データの検証（データベースへの統合）やアクセス制御の仕組みなどがある。さらに、ストアドプロシージャは、もともとアプリケーションに実装されていたロジックを統合し、一元化することができる。時間とメモリを節約するために、複数のSQL文の実行を必要とする大規模または複雑な処理をストアドプロシージャに保存し、すべてのアプリケーションはそのプロシージャを呼び出すことができる。ストアドプロシージャの中から別のストアドプロシージャを実行することで、ネストされたストアドプロシージャを使用することができる。
実装.
または
静的SQLとの比較.
オーバーヘッド
ストアドプロシージャ文は直接データベースに格納されるため、ソフトウェアアプリケーションがインライン（動的）SQLクエリをデータベースに送信する状況で通常必要となるコンパイルのオーバーヘッドのすべてまたは一部を削除することができる。(ただし、ほとんどのデータベースシステムは、動的SQL文の反復的なコンパイルを避けるために、ステートメントキャッシュや他の方法を実装している)。また、プリコンパイルされたSQLをある程度回避できる一方で、SQL文のすべての引数がコンパイル時に提供されないため、最適な実行プランを作成するための複雑さが増す。特定のデータベースの実装や構成によっては、ストアドプロシージャと一般的なクエリやユーザー定義関数を比較した場合、性能に差が出ることがある。
ネットワークトラフィックの回避
ストアドプロシージャの大きな利点は、データベースエンジン内で直接実行できることである。本番システムでは、プロシージャは専用のデータベースサーバーで実行され、アクセスされるデータに直接アクセスできるのが一般的である。この利点は、ネットワーク通信コストを完全に回避できることである。これは、一連の複雑なSQL文の場合に、より重要になる。
ビジネスロジックのカプセル化