Database OracleDB インフラ

[OracleDB] ”insert”文でデータ挿入。insert文を高速化するポイントも紹介。

投稿日:

こんにちは!シミダイ(@shimidai2100)です。

OracleDatabaseのデータ挿入SQL、「insert」文について紹介します。

insert」文は、「update」、「delete」と同様にDML(Data Manipulation Language )と呼ばれ、データを操作するSQL文になります。

「insert」文は単純SQLですが、「insert into ~ select」文などテクニックもあり意外に奥が深いです。

この記事で「insert文」の基本的な使い方から、insert高速化のためのTIPSも紹介します。


基本構文:insert into ~ value

insert 文の基本構文は以下になります。

下がサンプルのinsert文になります。

またinsert文は全カラムを指定した場合、列名を省略して記載することができます。

下が全カラムを指定した場合のサンプルinsert文になります。

表データをまとめて挿入:insert into ~ select

表データをまとめてinsertすることが出来るのが「insert into ~ select」で実施することができます。

以下がサンプルになります。

もちろん列名を指定してinsertすることも出来ます。

ここでは記載しませんが、結合した表を1つの表へinsertすることもできます。

ダイレクト・パス・インサート:/*+ APPEND */

insert into ~ select」など効果的なinsert方法に「ダイレクト・パス・インサート」があります。

ダイレクト・パス・インサートとは、データベースバッファを経由せずデータファイルへ直接データを書き込みます。

そのため、バッチ処理のように大量のデータを一括でinsertさせる時に大変性能が向上します。

ダイレクト・パス・インサートを使用するためにはヒント句/*+ APPEND */」を使用します。

下が「/*+ APPEND */」を使用したサンプルです。

 

スポンサードリンク

関連記事

-Database, OracleDB, インフラ

Translate »

Copyright© shimidai2100 , 2018 All Rights Reserved.