• 検索結果がありません。

CREATE AS SELECT + 元表削除(DROP) + RENAME

ドキュメント内 スライド 1 (ページ 80-90)

Appendix

3. CREATE AS SELECT + 元表削除(DROP) + RENAME

4. ALTER TABLE <表名> MOVE TABLESPACE <表領域名>)

※ 索引等のメンテナンスも必須

 オンライン状態で実施

1.

オンライン表再定義(Enterprise Edition機能)

2.

オンライン・セグメント縮小(標準機能)

HWM を下げるオペレーション

 オンライン・セグメント縮小

– 業務でテーブルを利用中でもセグメント縮小が可能

– 自動セグメント領域管理(ASSM)のみ利用可能

オンライン・セグメント縮小

ALTER TABLE <

表名

> ENABLE ROW MOVEMENT;

ALTER TABLE <表名> SHRINK SPACE[CASCADE];

① ②

データの移動 HWMの移動

領域の解放 空き領域

HWM

Appendix

Oracle Database からの

CSV アンロード

なぜ CSV でロード / アンロードしたいのか?

 RDBMS 製品間のデータ交換

– Oracle Database から他社 RDBMS へ

– 他社RDBMSから Oracle Database へ

 業務処理 ( 本番環境 ) としてデータ交換を行なっている

 検証・開発用にデータをベンダーに提供する

CSV ロード / アンロードに関する問題

 CSV はフォーマット・エラーが発生しやすい

– ローディングが行えず、 PoC が始まらない

 Oracle Database には CSV アンローダーが存在しない

– どのような手法でアンロードするかが性能に大きく影響する

– CSV フォーマット・エラーが発生しやすい

CSV フォーマットとは

 狭義では CSV = Comma-Separated Values [RFC4180]

– フィールド終端 : , レコード終端 : CRLF

 広義では CSV = Character-Separated Values

– フィールド終端とレコード終端が特定の文字

 狭義の CSV を使いがちだが

ほとんどのソフトウェアが広義の CSV に対応している

 狭義の CSV はフォーマット・エラーを起こしやすい

フォーマット・エラーの例

abc def 1,234

uvw xyz 7,890

データにフィールド終端が含まれている

abc def 1 234

uvw xyz 7 890

abc,def,1,234

uvw,xyz,7,890 2

列に分割されてしまっている

正しい対応例

 例)フィールド終端 : タブ( ^I ) abc^Idef^I1,234

uvw^Ixyz^I7,890

 タブ区切りテキスト (TSV) は Microsoft Excel 含め、

対応ソフトウェアが多いので利用しやすい

 注意 : ユーザーが自由入力できるアプリケーション

( textarea 要素を含む Web アプリケーションなど)では データにタブが含まれることが少なくない

終端記号をデータに含まれない文字にする

ORACLE_LOADER の場合の最適な対応例

 ORACLE_LOADER ドライバー( SQL*Loader 含む)は

ASCII 制御文字を含むあらゆる文字に対応できる

 例)フィールド終端 : ユニット分離標識( ^_) レコード終端 : レコード分離標識( ^^ )

abc^_def^_1,234^^uvw^_xyz^_7,890

 マイナーな ASCII 制御文字がデータに含まれている確率はほぼゼロ

 Vim では Ctrl + V → Ctrl + ^ で ASCII 制御文字を入力可能

 制御ファイルでは DELIMITED BY X'1E' のように 16 進数指定も可能

終端記号にマイナーな ASCII 制御文字を使用する

誤った対応例

 エンクロージャ " を追加する

"abc","def","1,234"

 データに " は含まれていないか? → 含まれている → エラー

"abc","def","1'23""

 データに " が含まれていないことが確実なのであれば、

フィールド終端を " にするだけで解決 abc"def"1,234

エンクロージャでは解決できない

ドキュメント内 スライド 1 (ページ 80-90)

関連したドキュメント