SQLとバッチ処理
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/10/20 00:39 UTC 版)
埋め込みSQLやODBCの普及により、オンライントランザクション処理向きのSQLアクセス方法は確立されたが、バッチ処理性能向上の必要性が求められるようになった。 ある表 (テーブル)の内容を編集して別の表に格納する大量データの更新処理などをデータベースエンジン内部で処理プログラムを実行し、入出力 (I/O) のほとんどをデータベース内部で完結することにより、クライアント側とのデータ通信によるオーバヘッドを削減することでバッチ処理性能を向上させる「ストアドプロシージャ」が考え出された。 ストアドプロシージャは、同じくデータベース内部に定義し、データベースに発生したイベントの内容に応じて任意の処理を実行する機能である「データベーストリガ」とともに、標準SQL仕様に採用され、SQL:1999 (SQL99) 規格の永続格納モジュール (SQL/PSM) として標準化された。 しかし、標準化される以前から各関係データベース管理システム (RDBMS) ベンダーがデータベースエンジン内部で制御文法を記述し実行できるように独自の拡張が行われていたため、ストアドプロシージャの処理ロジック記述文法はそれ以前に標準化されたSQL文法と比較して著しい非互換が認められるため、アプリケーションソフトウェアの移植性・開発生産性・保守性を損なう場合がある。 標準SQLのSQL/PSMを採用したRDBMSを以下に挙げる。これらは概ね仕様に準拠しているが、仕様に定められていない部分や実装上の理由により細部には違いがある。 SQL/PSM (DB2, MySQL) 各RDBMSベンダーによる標準以外の独自のプロシージャには以下のようなものがある。これらには、独自追加された制御構文だけでなく、命令やデータ型の非互換も含むため注意が必要である。 PL/SQL (Oracle, DB2) Transact-SQL (Adaptive Server Enterprise, Microsoft SQL Server) PL/pgSQL (PostgreSQL) PSQL (Firebird, InterBase)
※この「SQLとバッチ処理」の解説は、「SQL」の解説の一部です。
「SQLとバッチ処理」を含む「SQL」の記事については、「SQL」の概要を参照ください。
- SQLとバッチ処理のページへのリンク