ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

Oracle 外部表

2012-07-08 00:00:25 | PG(RDBMS)

Oracle Loader for Hadoopを試していたら外部テーブル(external table)という仕組みがあるのを知ったので、ちょっと調べてみた。

外部テーブルとは、データファイル(CSVやDataPump)をテーブルとして扱うことが出来るもの。(逆説的に、まるでHiveみたいだなw)

外部テーブルを作るのは一瞬だが、その後SELECTする際にデータファイル読み込みが発生するので、実行時間はSQL*Loaderとそんなに差が無いかもなぁ…と思っていたが、インデックスの無いEMPテーブルへのロードを試してみたら、外部テーブルを使う方が3~4倍も速かった。

CSVファイルとDataPumpの外部テーブルによるSELECT-INSERTは、100万件だとDataPumpの方が2倍くらい速かったが、1000万件だと逆にCSVの方が2倍くらい速かった^^;
この辺りは、使っているデータ型の種類やデータ値によって色々変わってきそうな気がする。(要するに、実際に使うテーブルやデータで計測せよ、と)