Oracle SQL*Loaderの概要

SQL*Loaderは、外部ファイルからのデータでOracle表を迅速に作成する重要な機能です。 SQL*Loaderは、様々なデータ・ファイル内のデータの形式を扱うことができる、強力なデータ解析エンジンです。 この機能は、sqlldrコマンドの指定時、またはEnterprise Managerインタフェースの使用時に呼び出されます。

SQL*Loaderは、Oracleデータベースの統合機能として、様々な構成で提供されます。

主な機能

SQL*Loaderには、次の処理を行います。

  • ネットワークを介してデータをロードする。 SQL*Loaderサーバーを実行するシステムとは異なるシステム上で、SQL*Loaderクライアントを実行できます。
  • 同じロード・セッション中に、複数のデータ・ファイルからデータをロードする。
  • 同じロード・セッション中に、複数の表にデータをロードする。
  • データの文字セットを指定する。
  • 選択したデータをロードする。
  • ディスク、テープまたはNamed Pipeからデータをロードする。
  • データの文字セットを指定する。
  • 高度なエラー・レポートを生成し、トラブルシューティングを支援する。
  • 複雑なオブジェクト関連データを任意にロードする.
  • 従来型パスまたはダイレクト・パスによるロードを使用する。
ファイル・タイプ

SQL*Loader制御ファイル
制御ファイルとは、SQL*Loaderが理解する言語で書かれたテキスト・ファイルです。 制御ファイルの使用により、SQL*Loaderは、データの場所、データ解析と翻訳方法、およびデータ挿入場所を認識できます。

入力データとデータ・ファイル
SQL*Loaderは、制御ファイルで指定した複数のファイルからデータを読み込みます。 SQL*Loaderでは、データ・ファイル内のデータは、レコードとして編成されます。 データ・ファイルによっては、固定レコード形式、可変レコード形式、またはストリーム・レコード形式で作成可能です。 選択された形式は、データに依存し、またジョブに必要な柔軟性およびパフォーマンスに応じて異なります。

LOBFILEs

LOBFILEからロードする方が効果的な長いLOBデータもあります。 LOBデータのインスタンスは、フィールド内にありますが、フィールド自体は、レコードとして編成されていません。 したがって、レコード処理のオーバーヘッドを回避できます。 このタイプのデータまたはこの編成のデータは、LOBロードに適しています。

バルク・ロード

SQL*Loaderを使用すると、オブジェクト、収集、およびLOBをバルク・ロードできます。 SQL*Loaderは、次のバルク・ロードをサポートしています。

  • 2つのオブジェクト型: 列オブジェクトと行オブジェクト
  • 同じロード・セッション中に、複数のデータ・ファイルからデータをロードする
  • 2つのコレクション型: ネストした表とVARRAYS
  • 4つのLOB型: BLOB、CLOB、NCLOsおよびBFILE
ロード方法

SQL*Loaderには、3種類のデータ・ロード方法 (従来型パス、ダイレクト・パス、および外部表)があります。

従来型パスによるロード
従来型パスによるロードは、挿入する行配列を作成し、SQL INSERT文を使用してデータをロードします。 従来型パスによるロードの実行中、入力レコードはフィールド仕様に応じて解析され、各データ・フィールドは対応するバインド配列にコピーされます。 バインド配列が一杯な場合(または、読み込む出データがない場合)、配列の挿入が実行されます。

ダイレクト・パスによるロード
ダイレクト・パスによるロードは、メモリー内にデータ・ブロックを作成し、現在ロード中の表に割り当てられたエクステントに直接保存します。 ダイレクト・パスによるロードは、フィールド仕様を使用して、Oracleデータ・ブロック全体を作成し、Oracleデータ・ファイルに直接書き込みます。この場合、通常のデータ処理は無視されます。 ダイレクト・パスによるロードは、従来型ロードと比較して高速ですが、多少制限があります。

パラレル・ダイレクト・パスによるロードは、複数のパスによるロード・セッションが可能なため、同じデータ・セグメントを同時にロードできます。 パラレル・ダイレクト・パスは、ダイレクト・パスと比較して制限があります。

外部表ロード
外部表ロードは、データ・ファイル内のデータに対して外部表を作成し、INSERT文を実行してデータをデータ・ファイルから対象表に挿入します。

従来型パスおよび直接パスによるロードのかわりに、外部表ロードを使用すると、次の2つの効果があります。

  • 外部表ロードは、データ・ファイルを並列にロードします。 データ・ファイルが大きい場合は、それを並列にロードします。
  •  
  • 外部表ロードは、外部表の作成に使用されるINSERT文としてのSQL機能およびPL/SQLファンクションを使用するとにより、ロードするデータの変更を可能にします。

まとめ
SQL*Loaderは、外部表からOracleデータベース内の表にデータをロードする、高速のデータ・ロードのユーティリティです。 データベース管理者は、SQL*Loaderの高速なパフォーマンスと柔軟性により、迅速かつ効率的にロードのジョブを処理できます。


Copyright © 2004, Oracle Corporation. All Rights Reserved. Oracle Corporation発行の「Oracle SQL*Loader Overview」の翻訳版です。
この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることがあります。 
万一、誤植などにお気づきの場合は、オラクル社までお知らせください。
オラクル社は本書の内容に関していかなる保証もしません。また、本書の内容に関連したいかなる損害についても責任を負いかねます。