タグ

2013年9月10日のブックマーク (3件)

  • APPEND_VALUESの間違った使い方をしてみる - kagamihogeの日記

    Oracleにはダイレクト・パス・インサートというINSERTを高速に行う機能がある。それを指示するためのオプティマイザ用のヒントは2種類あり、APPENDとAPPEND_VALUESとがある。文法上の違いだけを見ると、APPENDはINSERT 〜 SELECTに使うもので、APPEND_VALUESはINSERT 〜 VALUESに使用する。しかしながら、ダイレクトパスインサートの動作的に、APPENDは使う機会はあってもAPPEND_VALUESはほとんど無いと思われる。 このエントリでは、理屈の上では無駄(むしろ邪悪)な結果になることをあえて試す。具体的には、下記のようなINSERT文を10万回ほど発行したとき、何が起きるのかを見る。 INSERT /*+ APPEND_VALUES */ INTO A(COLUMN1) VALUES('hoge'); 環境 jdk1.7.0_17

    APPEND_VALUESの間違った使い方をしてみる - kagamihogeの日記
  • NOLOGGING有無によるダイレクトパスインサートの速度の差 - kagamihogeの日記

    Oracleは、NOLOGGINGを指定することでREDOログを抑制する結果としてINSERT等の速度を改善することが出来る……らしい。今回はその辺を実際にやってみることにする。 参考URL: Oracle Database管理者ガイド 11g リリース2 (11.2) REDOレコードの書込みの制御 Oracle Database VLDBおよびパーティショニング・ガイド11g リリース2 (11.2) パラレル実行のチューニングのその他のヒント パフォーマンスセラピー / NOLOGGINGとは 環境 Oracle Database Express Edition 11g Release 2をWindows上で動作 Oracle SQL Developer 3.2 準備 入力側のテーブルを作成する。インデックスとか制約とかはなんもなし。 CREATE TABLE SRC (COLUMN

    NOLOGGING有無によるダイレクトパスインサートの速度の差 - kagamihogeの日記
  • ダイレクト・パス・インサート - オラクル・Oracleをマスターするための基本と仕組み

    ダイレクト・パス・インサート (ダイレクト・ロード・インサート) ダイレクト・パス・インサートとは、データベースバッファを経由せずデータファイルへ 直接データを落とし込むという点から、ある特定条件下で非常に優れた処理方法である。 データベースのバッファ処理を経由しないことで高速に処理でき、バッファから他のキャッシュを追い出すことによるキャッシュヒット率の低下を防ぐこともできる。 高速に大量データをインサートさせるための手法 ダイレクト・パス・インサートによる高速のインサート処理にはトレードオフがあるが脅威的な速さを誇る。 数百万件オーダのデータの投入するのに数分とかからない(レコードサイズ、スペックに左右はされる) 通常のパスのローディングに比べて 数分の1 程度の時間で投入できる。 NOLOGGING 状態の場合 REDO ログが出力されない。(高速にはなる一方でフルバックアップするまで