ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

Oracle

11g Gold移行試験合格しました。

6月に惨敗を喫してから早半年。ようやく合格できました。 今回は前回惨敗の反省から、いくつか理解の薄かった機能を実際に動かして試してみるというのと同時に、Crammediaを導入しました。 社内で数ヶ月のうちに一から10g Goldを取得した人がいるのですが、…

SQLパフォーマンスアナライザをガイド付きワークフローで実行してみる

SQLパフォーマンスアナライザとは、マニュアルによると、 データベースのアップグレードまたは索引の追加などのシステム変更によって、SQL文の実行計画が変更されることがあり、SQLパフォーマンスに重大な影響を与えることがあります。場合によっては、シス…

Enterprise Managerのポート番号を調べる

久々にOracle11gの勉強を再開したのですが、全て忘れてしまってます。 $ORACLE_HOME/install/portlist.iniを見ると分かるらしい。 Ultra Search HTTPポート番号 =5620 Enterprise ManagerコンソールのHTTPポート(orcl) = 1158 Enterprise Managerエージェン…

EMでSQLチューニングセットを作成する

SQLPAをやってみようと思ったのですが、まずSQLチューニングセット(STS)を作成する必要があります。 EMの画面を見た感じ、カーソル・キャッシュから作るのが一番簡単そうだったので、 カーソル・キャッシュから作ることにします。 SQL文をカーソル・キャッシ…

SQL計画管理

一番とっつき易そうなところからやってみる。 SQL計画管理とは SQL計画の管理を使用すると、SQL計画の情報を取得、選択および改良するためのコンポーネントが用意されているため、SQL文の実行計画に対する突然の変更によるパフォーマンスの低下を回避できま…

不合格。。

11g新機能試験受けてきましたが、不合格でした。 合格ライン61%に対して、結果正解率55%。 惜しいっちゃあ惜しいけど、残念ながら不合格。 15,750円が飛んでった。。 試験結果レポートによると、以下の項目を確認、復習いただくことをお勧めいたします。だそ…

勢いでGold DBA11g 新機能試験申し込みした。

Oracle Master Gold 10g → Oracle Master Gold 11gへバージョンアップするための移行試験。 Gold DBA11g 新機能 会社には6月末までに取ると宣言してあるので、 受験日はギリギリの6/27(土)にしてみた。 あと1ヶ月ちょっとですが、がんばります。 この試験に…

Oracle Enterprise Linuxをインストール

6月末Oracle Master 11g Gold移行に向けて、 とりあえず11gの環境を構築するため、 Oracle Enterprise Linuxをインストールしてみました。例によって、普段使いのWindowsにインストールして 環境を汚すのがいやだったので、VMWare上にインストールしました。…

10g Gold移行試験合格しました。

実に6年半ぶりのOracle Master試験。 最後に受けたベンダー資格は、SJC-WCなのですが、 これも5年くらい前だったと思う。 久々のコンピュータベースの試験で、かなり緊張しました。 テスト終了を押していいものやら、どうなのやら。 自信がないものにマーク…

SELECTリストにバインド変数

こんなことができるのかとビックリした。想像力が足りないと反省。 しかも、それにある条件が加わると、Oracleのバグを呼び起こすらしい。 JDBC-ODBCブリッジで書いた例 import java.sql.*; public class test { public static void main(String[] args) thr…

3/14(土)に10g Gold移行試験受けます。

自分にプレッシャかけるために、書いておく。 試験会場は厚木。

sqlplusでexplainを取得する

set autotrace on explain しておいてから、後はSQLを実行するだけ。 9iのときは、explainなんてオプションなかったような。 traceonlyとかはあったけど。10gからかなあ。 と思って調べてみたら、8iの頃からあるなあ。 Object Browserだと、explainを取得す…

SQLトレースをプロセス単位で取ってみる

Oracle10gの新機能の中で、SQLトレースをインスタンス単位、セッション単位以外で取れることになったらしいので、早速(いまさら)試してみた。http://www5b.biglobe.ne.jp/~taka_2/technique/Oracle_SQLTrace/index.html SQLトレースって、パフォーマンスチュ…

ポリシーフレームワーク

なんでポート番号からプロセスを探し当てるようなことやっているかっていうと、 Oracleのポリシーフレームワークとかいうのがあって、要はシステムの最適な構成が定義されているので、それに違反した設定を検知したりとか、設定を修正したりとか、無視するよ…

Oracle - Automatic Storage Managementを使ったデータベースを作ってみる

10gR1新機能のマニュアルを読み始めたのですが、すでに挫折しそうです。。 新機能のマニュアルって、実はまともに読むのは初めてなのですが、新機能一つ一つについて2~3行の説明文が書いてあるだけで、詳細は各マニュアル参照って形式なのですね。(そりゃそ…

久々Oracle Masterとかどうなってんのか調べてみた

下のサイトに分かりやすい図があった。 http://www.oracle.com/global/jp/education/certification/path/11g_dba_path.html#Bronze BronzeとSilverは試験だけで良いけど、Goldはコース受講(1コース)、Platinumはコース受講(2コース) + 実技試験となったらし…

SQLを実行したときに、元のSQLも一緒に表示する

cシェルでsqlplusを実行するときに、 sqlplus user/pass@service <<EOF select count(*) from hoge / EOFみたいなことをやると、結果に「select count(*) 〜」が出力されず、件数しか出てこないので、何テーブルが何件なのか?ということが分からないというオチがあります。 で、set echo onとかやればいくんじゃないの?と思ったのですが、これは、 >@moge.sql とか、 >start moge.sql とか、 やったときのみ有効なオプションらしい。 でマニュアルを読んでみると、/だと元のSQL(というかバッファ)…</eof>

「n行が選択されました。」のメッセージは、デフォルトでは5行以下では表示されない

ある人から、「n行が選択されました。」っていうメッセージが表示される場合と、そうでない場合が存在する。っていう問い合わせを受けてみて初めて調べてみました。 実験してみると、5行までは表示されなくて、6行からは表示されるらしい。 で、SQL*Plusで h…

続々・バッチが遅い

>別の関係ないインデックスを使ってしまっているらしい。 その別の関係ないインデックスのみ統計情報が取られていたからなのだそうだ。 確かに、user_indexesのnum_rows列に、このインデックスのみ行数が格納されていた。(しかも今の件数とは全く違うもの…

続・バッチが遅い

どうやら、プライマリキー検索してるのに、プライマリキー作成時に自動的に作成されるインデックスを使用せず、別の関係ないインデックスを使ってしまっているらしい。 やっぱり統計情報が原因かなぁ。 しかし、EXPLAIN PLANとか、utlxpls.sqlとか、すっかり…

バッチが遅い

12,000件のトランザクションデータがあって、1件ずつマスタ(10万件くらいある)を参照するっていう作りになっているバッチなのですが、なんだか異常に遅くて(1時間以上かかった)びびってしまいました。 内部テスト環境でやったときには速かったので、SQL*Load…

時間がかかるSELECT文の最中に、そのSELECT文の条件にヒットするINSERT&コミットされた場合どうなる?

結果: INSERTデータはSELECTの結果に含まれない。 SCN(System Change Numberだったか?)がSELECT文発行時に確定するので、INSERTとかで後から追加されたデータは、SELECT文で確定したSCNより新しくなるので、そいつは無視されるという仕組みらしい。 しっか…

SQL*Loaderでchar(8)の項目にYYYYMMDD形式でシステム日付を固定でセットする

なんとなくマニュアル(Oracle Database ユーティリティの9 フィールド・リスト・リファレンスのSQL*Loaderを使用した入力データの生成の辺り)を読んだ感じだと、 データベースの列のデータ型は、CHARまたはDATE型にしてください。列がCHAR型の場合、日付は'd…

Oracle用CSVファイルインポートツール「Importer+」

http://www.vector.co.jp/soft/dl/win95/business/se181255.html 大量データかつ、機械データは、こないだ紹介したようなツールでよいのですが、単体テストや結合テストに利用するデータは、パターンを網羅するようなデータを作成する必要があるため、いい加…

既に作成されたテーブルのレイアウト情報を元に、機械的データを作成しテーブルにロードするツールおよび手順を公開しました。

http://www5b.biglobe.ne.jp/~taka_2/technique/OracleTips/index.html#4 http://www5b.biglobe.ne.jp/~taka_2/technique/OracleTips/file/makedata.zip このツールの最大の目的は、LightweightLanguageであるVBScript(という認識は、世間にはないかも知れな…