kagamihogeの日記

kagamihogeの日記です。

2013-03-01から1ヶ月間の記事一覧

APPEND_VALUESの間違った使い方をしてみる

Oracleにはダイレクト・パス・インサートというINSERTを高速に行う機能がある。それを指示するためのオプティマイザ用のヒントは2種類あり、APPENDとAPPEND_VALUESとがある。文法上の違いだけを見ると、APPENDはINSERT 〜 SELECTに使うもので、APPEND_VALUES…

マルチテーブル・インサートで同一テーブルに複数データ挿入してみる

Oracleには、マルチテーブル・インサートという単一のINSERT文で複数のテーブルに挿入できる機能がある。参考: INSERT - Oracle Database SQL言語リファレンス 11gリリース2(11.2) SQLクリニック(12):1つのSQL文で複数の表にINSERTする絶品テクニック (1…

サブクエリの条件が悪くメインクエリがフルスキャンになる

環境 Oracle Database Express Edition 11g Release 2をWindows上で動作 起きたこととか 下記のようなSQLを実行したところ、ちょっと表現が難しいくらい猛烈な実行時間がかかってしまった。 UPDATE BILLING B SET AMOUNT = 0 WHERE B.BILLING_ID = (SELECT O…

10万件INSERTを1件ずつコミットと1回だけコミットしたときの速度比較してみた

これまたやる前から結果分かってることなんですが。ループでINSERT文を発行する処理を想定したとして、commitをループの1件ごとにするときと、ループ終了後に1回だけするとき、とではどのくらい速度に差が出るものなのかをやってみる。 環境 jdk1.7.0_17 Ecl…

SQL Developerのインポート機能でken_all.csvを読み込んでみる

SQL Developerのインポート機能を使用してファイルをテーブルにインポートする場合、その方法をいくつかの選択肢の中から選ぶことが出来る。どれも最終的にはテーブルが作られて*1、そのテーブルにSELECT文などのSQLでアクセス可能になる。ただし、どの方法…

Oracleの外部表でken_all.csvを読み込んでみる

外部表 - オラクル・Oracleをマスターするための基本と仕組みOracleの外部表という機能の存在を知ったので、試しに使ってみる。適当なcsvファイルということで、郵便番号データダウンロード - 日本郵便からダウンロードできる、住所の郵便番号一覧であるken_…

JBoss AS 7でWebSocket(Atmosphere)動かす準備するところまで

2014/06/19 追記 このエントリに書いてある内容は古くなっておりhttp://www.wildfly.org/使えば下記のソースからビルドなどの手順は不要です。 環境 jdk1.7.0_17 JBoss AS 7.2.0.Final Eclipse 4.2.0 やったこと WebSocketをJBossで動かしてみよう、と考えた…

Oracleのシーケンス・採番テーブル・MAX+1

20130426 追記 実行時間の計測方法がおかしかったので書き直しあるテーブルの列に連番が欲しいとき、Oracleではシーケンス(順序とかSEQUENCEとか)を使うのが定番。採番テーブルでも同様に連番を作れるが、シーケンスを使うのが定石と言われている。その理…

SQL Developerの表作成機能についてのメモ

CREATE TABLEのGUI。プロジェクトなどによってはテーブル定義書からSQLを生成するマクロであったり何らかのツール使って生成するのだけど、そういうのが無かったり個人の実験用途でテキトーにテーブルをこさえたいときは、文法の細かいとこまで覚えてなかっ…

FIRST_ROWSとALL_ROWS

ALL_ROWS 最高のスループットとなるように最適化される(全表スキャン、ソート/マージ結合が選択されやすくなる) FIRST_ROWS(n) レスポンスタイムを最短にするように最適化される(索引スキャンとネステッド・ループ結合が選択されやすくなる)Oracle SQL…