LOAD TABLE 文は、データベース・サーバまたはクライアント・コンピュータにあるデータを、テキスト・フォーマットや ASCII フォーマットで既存のテーブルにインポートするために使用します。
また、LOAD TABLE 文を使用すると、別のテーブルのカラムや値の式 (関数やシステム・プロシージャの結果など) からデータをインポートすることもできます。
LOAD TABLE 文はテーブルにローを追加しますが、置き換えることはしません。
LOAD TABLE 文 (WITH ROW LOGGING および WITH CONTENT LOGGING オプションなし) を使用すると、INPUT 文を使用するよりもずっと早くデータをロードできます。
LOAD TABLE 文を使用してロードされたデータに対してはトリガは起動しません。
即時ビューでは、基本となるテーブルにデータをバルク・ロードしようとするとエラーが返されます。最初にビューのデータをトランケートしてから、バルク・ロード・オペレーションを実行する必要があります。
手動ビューでは、基本となるテーブルにデータをバルク・ロードできます。ただし、ビュー内のデータは次回のリフレッシュ時までは古いままです。
テーブルへのバルク・ロード・オペレーション (LOAD TABLE など) を実行する際は、先に従属するマテリアライズド・ビューのデータをトランケートすることを検討してください。データをロードしたら、ビューをリフレッシュします。TRUNCATE 文とREFRESH MATERIALIZED VIEW 文を参照してください。
即時テキスト・インデックスでは、基本となるテーブルで LOAD TABLE などのバルク・ロード・オペレーションを実行してからテキスト・インデックスを更新すると、自動更新にもかかわらず時間がかかる場合があります。手動テキスト・インデックスでは、リフレッシュにも時間がかかる場合があります。
テーブルへのバルク・ロード・オペレーション (LOAD TABLE など) を実行する際は、先に従属するテキスト・インデックスを削除することを検討してください。データをロードしたら、テキスト・インデックスを再作成します。DROP TEXT INDEX 文とCREATE TEXT INDEX 文を参照してください。
デフォルトでは、データをファイルからロードする場合 (LOAD TABLE table-name FROM filename;
など)、LOAD TABLE 文のみがトランザクション・ログに記録され、ロードされる実際のデータのローは記録されません。このため、元のロード・ファイルの変更、移動、削除後にトランザクション・ログを使用してデータベースのリカバリを行おうとすると、問題が発生します。また、同期やレプリケーションを行うデータベースが新しいデータを取得できません。
リカバリや同期の考慮事項に対応するため、LOAD TABLE 文では 2 つのロギング・オプションを使用できます。WITH ROW LOGGING を使用すると、ロードされたローごとに、トランザクション・ログに INSERT 文を作成します。WITH CONTENT LOGGING を使用すると、ロードされたローをグループ化してチャンクにし、チャンクをトランザクション・ログに記録します。これらのオプションにより、ロード・データのソースがなくなっても、ロード操作を繰り返すことができます。LOAD TABLE 文を参照してください。
データベースでミラーリングを行っている場合は、LOAD TABLE 文の使用に注意してください。たとえば、ファイルからデータをロードする場合、ミラー・サーバでファイルをロードできるかどうかや、ミラー・データベースがロードを処理するまでにロード元のソースのデータが変更されるかどうかに注意してください。これらのいずれかのリスクが存在する場合は、LOAD TABLE 文のロギング・レベルとして WITH ROW LOGGING または WITH CONTENT LOGGING のいずれかを指定してください。これにより、ミラー・データベースにロードされるデータが、ミラーリングされているデータベースにロードされたデータと同一になります。LOAD TABLE 文を参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |