ablog

不器用で落着きのない技術者のメモ

Oracle

書籍”Oracle の現場を効率化する100の技”の紹介

この本を一言で言うと「オラクルコンサルタントのノウハウモロ見せ」です。Oracleの現場を効率化する100の技作者: 鈴木健吾,玉置雄大,塩原浩太,小林修,大森慎司,内村友亮出版社/メーカー: 技術評論社発売日: 2015/05/26メディア: 単行本(ソフトカバー)この…

JPOUG> SET EVENTS 20151017 に参加しました

JPOUG> SET EVENTS 20151017 | Japan Oracle User Group (JPOUG) JPOUG > SET EVENTS 20151017 - Togetter に参加しました 写真は @tadayima_jpさんのツイート から頂きました。発表はしていませんが林優子さんと小田さんの”DBエンジニアのスキルの現実と伸…

oracle.jdbc.ReadTimeout はソケット読込時のタイムアウト

Oracle JDBC Thin Diver の oracle.jdbc.ReadTimeout について調べたことをメモ。 Oracle ACE の id:yamadamn さんのスライドがわかりやすいです。 Oracle JDBCドライバプロパティの活用 from Oracle Fusion Middleware P.11 P.12 まとめ Oracle JDBC Thin D…

Oracle RAC の投票ディスクについて

オラクルマスター教科書 ORACLE MASTER Expert 【RAC】編(試験番号:1Z0-048) P.460 投票ディスクの機能 CSSD(Cluster Syncronization Service デーモン)は、インターコネクトを介してほかのノードと通信し、通信状況を投票ディスクに格納します。インターコ…

SQL*Plus で spool やリダイレクトするとスペースがタブになるのが嫌な場合は set tab off

質問されたので、書いときます。 次は SQL*Plus の SET システム変数 TAB。SET TAB { ON | OFF } - SETシステム変数の一覧 sqlplus の出力をファイルに spool した後に眺めてみると、画面上では空白だと思っていたものが実は TAB 文字でした残念!という事が…

direct path read か db file scattered read か

Serial direct path reads were first introduced in Oracle 11G which were noticed by many customers (in both positive and negative ways) who upgraded from the earlier releases. Back then I did a quick write up on the subject to try and tackl…

実行計画が変動したSQLの実行計画を一括出力する

DBA_HIST_SQL_PLAN に PLAN_HASH_VALUE が複数ある SQL の実行計画を DBMS_XPLAN.DISPLAY_AWR で一括出力する SQL。再帰SQLが出力されないよう OBJECT_OWNER で絞っている。 SQL set pagesize 50000 set linesize 200 select b.* from ( select distinct sql…

実行計画の OPERATION と OPTION は X$XPLTON と X$XPLTOO に

実行計画の OPERATION ってどこのX$表に入っているんだろうと思って調べたら、tech.E2SN に書かれていた。 X$XPLTON (eXPLain rowsource Operator Names) (11.1 -) X$XPLTOO (eXPLain rowsource Operator Options) (11.1 -) DBA_HIST_PLAN_OPERATION_NAME (1…

SQLチューニング原論(仮)

もわっとしたイメージ重視のテキトーメモ。正確性、網羅性は重視していない。 チューニングの三原則 仕事量(計算量)を減らす 仕事量は CPUコスト + I/Oコスト とも言える 行単位でデータが必要な場合は行指向、列方向でデータが必要な場合は列指向など 圧…

Oracle Database でランキュー待ちは DB Time > DB CPU + non-idle wait time として現われる

CPU使用率が高くなってくると、プロセス(スレッド)がCPUを待つランキュー待ち時間が増えます。vmstatのr列などを見ればすぐにわかりますが、Oracle Database の性能分析で AWR レポートやStatspackレポートしか情報がないといった場合は以下のような兆候から…

latch系の待機時間にはCPUでスピンしている時間は含まれない

Oracle Database には latch(ラッチ) という排他制御があります。latch はスピンロックで、CPUを使って一定回数スピン(ループ)しながらロックを獲得しようとします。一定回数スピンして獲得できないとスリープします。AWR レポートや Statspack レポートに…

AWRレポートでページイン・ページアウトの発生状況を確認する

vmstat などでページイン、ページアウトの発生状況を確認したいが、AWRレポートしかないという場合は Operating System Statistics の VM_IN_BYTES、VM_OUT_BYTES で確認できる。 VM_IN_BYTES: Total number of bytes of data that have been paged in due t…

is not null で count する SQL を Index Only "Fast Full" Scan で高速化する

is not null で count する SQL を Index Only "Fast Full" Scan で仕事(計算)量を減らして高速化してみた。インデックスを作成すると、オプティマイザが期待していた仕事(計算)量が少なくなる実行計画を選択してくれた。 チューニング結果 ビフォー 17:…

"commit" and "log file sync"

When you commit a transaction you update the transaction table slot that identifies your transaction to show that the transaction is committed – this is a change to an undo segment header block so it generates a redo change vector. THe han…

SQLチューニングに関する資料

動画 Tanel Poder’s Hacking Session: How Oracle SQL Plans Are Really Executed – Part 1 Tanel Poder’s Hacking Session: How Oracle SQL Plans Are Really Executed – Part 2 Tanel Poder’s Exadata Snapper Hacking session videos Oracle full table s…

fulltime.sh by Craig Shallahamer で DB CPU の内訳を調べる

2012年(zusaar.com -&nbspzusaar リソースおよび情報) 2013年(zusaar.com -&nbspzusaar リソースおよび情報) に続き、今年で3年目を迎えた JPOUG Advent Calendar 2014の2日目です。1日目は sakita さんの 12.1.0.2 Zone Maps 入門 Part II でした。 Ora…

Oracle Database が Library cache と Dictionary cache に同じ情報を持つと聞いて

Oracle 8i Internal Services: for Waits, Latches, Locks, and Memory作者: Steve Adams出版社/メーカー: O'Reilly Media発売日: 1999/10/21メディア: ペーパーバック クリック: 19回この商品を含むブログ (10件) を見るP.50 It also contains abstract rep…

ORA-4030のトレースファイルから領域ごとのメモリ使用量を調べる

手順 トレースから Process Map Dump セクションを抽出する perl -nle '/End of process map dump/ and exit;/Dumping process map/ and $b=$.+1;defined($b) and $.>$b and print;' foo.trc > process_map_dump.txt 行番号、マッピング、サイズ(KB)という…

oraagent.bin が UDP で通信している

11gR2 RAC でローカルでUDPで通信してるプロセスがいると言われて、ちょっと netstat 見てたら、oraagent.bin が UDP で通信しているのを見つけた。 $ netstat -nauep Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name…

Grid Infrastructure のインストールで INS-40909 が発生する

INS-40909: 複数のドメインからのホスト名が入力されました。 原因: 異なるドメインに属する複数のノードに対してノード情報が入力されました。 処置: 同じドメインに属するホスト名を入力してください。 INS-40001からINS-45000 OUIで入力しているホスト名…

Oracle Linux 6.5 で X Window が起動しない

事象 ランレベルを 5 に変更できない エラーメッセージは以下の通り [root@ovmm328az ~]# less /var/log/messages Jul 11 15:11:07 ovmm328az irqbalance: Balaincing is ineffective on systems with a single cache domain. Shutting down Jul 11 15:11:07…

Oracle VM Manager が起動しない

バージョン Oracle VM Manager 3.2.8 事象 起動しようとすると延々待ってタイムアウトする。 [root@yazekats-linux ~]# service ovmm start Starting Oracle VM Manager Time out... /u01/app/oracle/ovm-manager-3/machine1/base_adf_domain/servers/AdminS…

Oracle Database 12cR1 (12.1.0.1.0) 4ノード RAC 構築手順 on ノートPC

How To Deploy a 4 Node RAC Cluster Using Oracle VM Templates に従って、ノートPCに 12cR1(12.1.0.1.0) 4ノード RAC を構築した手順です。構成は以下のようにホストOS(Oracle Linux 6.4) -> VirtualBox 4.3.10 -> Oracle VM 3.2.5 -> Oracle Linux 6.5 ->…

「データベースの限界性能を引き出す技術 ~NoSQLに飛びつく前に知っておきたい原理と最新テクニック」の紹介

同僚が書いた本の紹介です。 パフォーマンスチューニングのエキスパートである著者が長年の経験で得たエッセンスを惜しみなく伝授してくれる高速道路のような一冊だと思います。ぶっちゃけ読んでいて「へ〜、知らなかった(^-^;」と思ったところがありました…

sort するとなぜ consistent gets が減るか?

Tom Kyte の以下の記事を読んで、同じテーブルをフルスキャンする場合にソート有無で consistent gets が変わる理由を調べてみた。 これは大きな変化です。 転送されるデータが8MBから3.4MBに減少しました。この減少はすべて、Oracle*Netの圧縮によるもので…

Oracle Client をアンインストールする

Oracle Client 11.2.0.4 on Oracle Linux 6.4 を deinstall ツールでアンインストールしてみた。 アンインストールすると ORACLE_BASE 以下が削除され、/etc/oratab や /usr/local/bin/coraenv, dbhome, oraenv は削除されない。 この章では、削除ツールを使…

Oracle Linux 6.4 にターミナルエミュレータ "Terminator" をインストールしてみた

インストールする # yum install terminator 使ってみる 起動する $ terminator Ctrl + Shift + o で画面を水平分割する Ctrl + Shift + e で画面を垂直分割する スクリーンショット 参考 Terminator: Introduction 拡張ターミナルソフトウェアのTerminator …

SQL*Plus で bash のようにカーソルキー(↑、↓)で履歴を呼出したり、Tabキーで自動補完したりする方法

SQL*Plus on Linux で bash のようにカーソルキー(↑、↓)で履歴を呼出したり、Tabキーで自動補完したりする方法を紹介します。 以前書いた sqlplus で bash みたいにヒストリを呼び出したりできたらいいな - ablog と同じような内容ですが、Oracle Database…

SQL*Plus でログインしようとすると「ORA-21561: OID generation failed」発生

Linux マシンに Instant Client をインストールして、リモートホストのデータベースに sqlplus で接続しようとしたら、ORA-21561 が発生した。 $ ./sqlplus scott/tiger@dbserver:1521/orcl SQL*Plus: Release 11.2.0.4.0 Production on Mon Jan 27 11:25:39…

遅延ブロック・クリーンアウト

Oracle Databaseでトランザクションをコミットしたとき、変更されたブロックすべてがコミットSCNで即時に更新されるとはかぎりません。この場合は、ブロックの読取り時または更新時に必要に応じて更新されます。これを遅延ブロック・クリーンアウトと呼びま…