2013-01-01から1年間の記事一覧
(略)次のような場合は、パフォーマンス上の理由から、表の整合性制約を一時的に使用禁止にすることを検討してください。 ・表に大量のデータをロードする場合 ・表に大規模な変更を加えるバッチ操作を実行する場合(たとえば、既存の番号に1000を加えてすべ…
リレーショナルデータベースは論理レベルではテーブルの行順序は重要では無い。しかし、物理レベルではディスクなど順序が重要な意味を持つ媒体に格納されるのが現実である。このエントリでは、表の行の格納順序を昇順orランダムにし、それにインデックスを…
環境 jdk1.7.0_21 Eclipse 4.2.0 SR2 ojdbc6.jar Oracle Database Express Edition 11g Release 2 play-2.1.1 やったこと 新規アプリケーションの作成 playを解凍したディレクトリに移動して、下記のように play new [新規アプリケーション名]と打つ。 play …
20130426 追記 実行時間の計測方法がおかしかったので書き直しOracle内部の処理が並列になるパラレルクエリ等はともかく、Oracleの外部から与える複数のINSERTを分割しても意味は無い気がするが、実際にどうなるかやってみる。 環境 jdk1.7.0_17 Eclipse 4.2…
ここんとこSQL*Loaderで遊んでるんで、もうちょい大きいデータファイルでもロードしてみるか、ってだけのエントリです。 環境 Oracle Database Express Edition 11g Release 2をWindows上で動作 SQL*Loaderを起動するクライアントと、Oracle Databaseは物理…
Oracle Databaseユーティリティ11g リリース1(11.1)11 従来型パス・ロードおよびダイレクト・パス・ロードの「従来型パスを使用する場合」には、ダイレクトパスロードよりも従来型INSERTを用いた方がよいケースについての記述がある。 従来型パスを使用す…
SQL*Loaderの従来型INSERTモードを使用してインデックスが有効なテーブルへデータをロードするとき、入力ファイルがソートされているかいないかがどのような影響を及ぼすのかを確認する。 環境 Oracle Database Express Edition 11g Release 2をWindows上で…
最初はOracle Databaseの実行計画の見方良くわからなんな、というのが出発点だった。ぐぐってると@IT:Databaseフォーラム全記事インデックス - Oracle SQLチューニング講座をオススメしてる人がいて、まずこれを読んだ。読んだが、もうちょっと根本的なと…
Oracle Databaseユーティリティ11g リリース1(11.1)11 従来型パス・ロードおよびダイレクト・パス・ロードに、ダイレクト・パス・ロードのパフォーマンスの最適化という項目がある。OracleとSQL*Loaderの勉強ということで、ここに書いてある方法を試してい…
SQL*Loaderマッタク使ったことないんで、とりあえず使ってみる。参考: Oracle Databaseユーティリティ11g リリース1(11.1)第II部 SQL*Loader 環境 Oracle Database Express Edition 11g Release 2をWindows上で動作 Oracle SQL Developer 3.2 準備 下記の…
Oracleは、NOLOGGINGを指定することでREDOログを抑制する結果としてINSERT等の速度を改善することが出来る……らしい。今回はその辺を実際にやってみることにする。参考URL: Oracle Database管理者ガイド 11g リリース2 (11.2) REDOレコードの書込みの制御 Or…
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…
これまたやる前から結果分かってることなんですが。ループでINSERT文を発行する処理を想定したとして、commitをループの1件ごとにするときと、ループ終了後に1回だけするとき、とではどのくらい速度に差が出るものなのかをやってみる。 環境 jdk1.7.0_17 Ecl…
SQL Developerのインポート機能を使用してファイルをテーブルにインポートする場合、その方法をいくつかの選択肢の中から選ぶことが出来る。どれも最終的にはテーブルが作られて*1、そのテーブルにSELECT文などのSQLでアクセス可能になる。ただし、どの方法…
外部表 - オラクル・Oracleをマスターするための基本と仕組みOracleの外部表という機能の存在を知ったので、試しに使ってみる。適当なcsvファイルということで、郵便番号データダウンロード - 日本郵便からダウンロードできる、住所の郵便番号一覧であるken_…
2014/06/19 追記 このエントリに書いてある内容は古くなっておりhttp://www.wildfly.org/使えば下記のソースからビルドなどの手順は不要です。 環境 jdk1.7.0_17 JBoss AS 7.2.0.Final Eclipse 4.2.0 やったこと WebSocketをJBossで動かしてみよう、と考えた…
20130426 追記 実行時間の計測方法がおかしかったので書き直しあるテーブルの列に連番が欲しいとき、Oracleではシーケンス(順序とかSEQUENCEとか)を使うのが定番。採番テーブルでも同様に連番を作れるが、シーケンスを使うのが定石と言われている。その理…
CREATE TABLEのGUI。プロジェクトなどによってはテーブル定義書からSQLを生成するマクロであったり何らかのツール使って生成するのだけど、そういうのが無かったり個人の実験用途でテキトーにテーブルをこさえたいときは、文法の細かいとこまで覚えてなかっ…
ALL_ROWS 最高のスループットとなるように最適化される(全表スキャン、ソート/マージ結合が選択されやすくなる) FIRST_ROWS(n) レスポンスタイムを最短にするように最適化される(索引スキャンとネステッド・ループ結合が選択されやすくなる)Oracle SQL…
環境 TimesTen 11.2.2.4.1 for Windows (32-bit) Winsows XP (クライアント・サーバ両方とも同じ) Oracle SQL Developer 3.2 やったこと TimesTenのインストール まずTimesTenをサーバ側となるWindowsマシンにインストール。インストーラにしたがってポチポ…
SQL Developerは、本来的には開発向けのツールである。ただ、簡易ながらDB監視の、どちらかといえば運用向けの機能も備えている。といっても、V$系のビューを多少見やすくしたGUIといったところで、さすがにEnterprise Managerなどには遠く及ばないのだけど…
読みやすく、バグのないコードとはどう書けばいいのか。この分野の名著としてはCODE COMPLETE 第2版 上が上げられるが、本書はより現代の事情に即した形で書かれている点が優れている。サンプルとして取り上げる言語はJava、対象となるシステムの分野はソー…
2016/12/10追記 1.8で追加された主としてStreamを使うメソッド群を追加。jdk1.8.0_111を使用。 2020/03/21追記 jdk11で追加されたreadString/writeStringを追加。 Java SE 7徹底理解 第4回 New I/O 2の新しいファイルシステムインタフェース その1 | 日経ク…