読者です 読者をやめる 読者になる 読者になる

Oracle

disk_asynch_io=false ならASMに対して同期I/O(pwrite)になる

As you know ASM is doing non (operating system) buffered I/O (also known as ‘DIO’ or Direct I/O) regardless of the oracle database filesystemio_options parameter.But what’s about : Asynchronous/Synchronous I/O ?If you have a look to MOS no…

physical reads prefetch warmup

今更なネタですがメモ。 Oracle Database (10.1以降)でバッファキャッシュがスカスカの場合、アクセスパスが INDEX UNIQUE/RANGE SCAN でも db file scattered read でマルチブロックリードすることがある。 これはブロックにアクセスするついでに近くのブロ…

Oracle Database on Linux で SGA(共有メモリ) のスワップアウトを防ぐ方法

Oracle Database の初期化パラメータ SGA_LOCK = true を設定する SGA(共有メモリ) に HugePages を使う Linux のカーネルパラメータ vm.swappiness=0 にする(Linux Kernel 3.5 未満は 0 にしてもページアウトされることがある)

書籍”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年(JPOUG Advent Calendar 2013 on Zusaar) 2013年(JPOUG Advent Calendar on Zusaar) に続き、今年で3年目を迎えた JPOUG Advent Calendar 2014の2日目です。1日目は sakita さんの 12.1.0.2 Zone Maps 入門 Part II でした。 Oracle Database のパ…

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

Oracle8I Internal Services for Waits, Latches, Locks, and Memory作者: Steve Adams出版社/メーカー: Oreilly & Associates Inc発売日: 1999/10メディア: ペーパーバック クリック: 19回この商品を含むブログ (10件) を見るP.50 It also contains abstrac…

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で即時に更新されるとはかぎりません。この場合は、ブロックの読取り時または更新時に必要に応じて更新されます。これを遅延ブロック・クリーンアウトと呼びま…

PGA_AGGREGATE_TARGET

Oracle Databaseパフォーマンス・チューニング・ガイド 11gリリース1(11.1) E05743-02 7.5 PGAメモリー管理 http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/server.111/E05743-02/memory.htm#i49320 ORACLE_HOME/rdbms/admin/sbrep…

Oracle Database のサーバー・プロセスが通信する際にどのようなソケットオプションを使っているか調べる

環境 OS [root@localhost ~]# cat /etc/issue Enterprise Linux Enterprise Linux Server release 5.5 (Carthage) Kernel \r on an \m [root@localhost ~]# uname -a Linux localhost.localdomain 2.6.18-194.17.1.0.1.el5 #1 SMP Wed Sep 29 15:40:03 EDT 2…

Oracle Netトレース・ファイルを出力する

Oracle Database の sqlnet.ora にトレース・レベルを設定する $ cat /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/sqlnet.ora TRACE_LEVEL_SERVER=16 Oracle SQL Developer で接続する。 サーバープロセスの PID を確認する。 $ ps auxw…

Solaris で Oracle RAC を使う場合ののUDPバッファサイズについて

Solaris 10、Oracle Database と Oracle Grid Infrastructure は11.2.0 という前提。 Oracle Grid Infrastructureインストレーション・ガイド 11gリリース2 (11.2) for Oracle Solaris B57234-05 3.2.2 UDPパラメータ設定の確認 3.2.2 UDPパラメータ設定の確…

"cell smart table scan" についてメモ

Expert Oracle Exadata (Expert's Voice in Oracle)作者: Kerry Osborne,Randy Johnson,Tanel Poder出版社/メーカー: Apress発売日: 2011/08/09メディア: ペーパーバック クリック: 5回この商品を含むブログを見るP.323 The main difference lies in the fac…

wget.sh で My Oracle Support からパッチをダウンロードしようとすると"Unable to locally verify the issuer's authority"と怒られる

事象 My Oracle Support のパッチダウンロードページから wget.sh をダウンロードして実行するとログファイル*1に以下のメッセージが出力され、パッチをダウンロードできない。 ERROR: cannot verify ...'s certificate, issued by ... Unable to locally ve…

初期化パラメータ"O7_DICTIONARY_ACCESSIBILITY"の"O7"

初期化パラメータ"O7_DICTIONARY_ACCESSIBILITY"の"O7"は"Oracle7"って意味ぽいというどうでもいいことに気付いた。 O7_DICTIONARY_ACCESSIBILITYは、SYSTEM権限の制限を制御します。このパラメータにtrueを設定すると、SYSTEM権限によるSYSスキーマ内のオブ…

パイプライン表関数

テーブル・ファンクションは、行のコレクション(ネストした表またはVARRAY)を戻すユーザー定義のPL/SQLファンクションです。SELECT文のTABLE句の内部でテーブル・ファンクションを起動することで、データベース表のようにこのコレクションから要素を選択でき…

Oracle Database や OS の性能統計情報と財務諸表の共通点

このエントリは JPOUG Advent Calendar 3日目への参加記事です。 "Advent Calendar" の意味を調べてみたところ、 「アドベントカレンダー」(Advent Calendar)とは、クリスマスまでの期間(待降節=アドベント)をより楽しく過ごすため、12月1日から24日ま…

Oracle Database の CPU time には割込みで使われた時間は含まれなさそう

SQL*Plus でログインして、自分の PID を調べる [oracle@localhost ~]$ sqlplus neo/zion SQL> select s.sid, s.serial#, p.spid from v$session s, v$process p where p.addr = s.paddr and s.sid = sys_context('USERENV','SID'); SID SERIAL# SPID ------…

run キューで待たされた時間は CPU Time にはカウントされない

門外不出のOracle現場ワザ (DB Magazine SELECTION)作者: 五十嵐建平,大塚信男,小田圭二,鈴木博貴,村方仁出版社/メーカー: 翔泳社発売日: 2005/06/17メディア: 単行本購入: 3人 クリック: 33回この商品を含むブログ (19件) を見るP.54 Elapsed time と CPU T…

dbms_xplan.display で statement_id を指定する

dbms_xplan.display で statement_id を指定しないと直近に explain されたSQL文のものが表示されるが、statement_id を指定することもできる。 SQL> explain plan set statement_id '001' for select * from emp; SQL> select plan_table_output from table…

性能問題の切り分け方法について考えてみる

つれづれなるままに、日ぐらしパソコンに向かひて、心にうつりゆくデータベースの性能問題の切り分け方法をそこはかとなく書き付くれば、あやしうこそ物狂ほしけれ。なエントリ(書きかけ)。一度、脳内をフラッシュしてからまとめるべし。 性能問題による影…

Oracle Database の性能分析手法

メモ。ネタ集め。 性能分析手法 Oracle Wait Interface http://www.ex-em.co.jp/exem_labo/oracle_tips/OWI.pdf Method R What is Method R? Oracle Response Time Analysis 10046 trace name context forever: IOUG (Collaborate11) in Florida 4th Respons…

db tech showcase 2012 で「Welcome to the Real World」というお題で発表しました

db tech showcase 2012 の Unconference で、 "Welcome to the Real World" というお題で発表しました。「世界中のデータベース技術者の"Rock"な叫びと生意気さがここに」というテーマということでワイルドで荒削りな資料になってます。 映画「The Matrix」…

SQLトレースとstrace

[oracle@localhost ~]$ sqlplus neo/zion SQL*Plus: Release 11.2.0.2.0 Production on Wed Oct 17 17:50:41 2012 Copyright (c) 1982, 2010, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Pro…

SQLトレースに関するメモ

SQL> alter session set sql_trace=true; Session altered. SQL> select to_char(sysdate,'yyyymmddhh24miss') from dual; TO_CHAR(SYSDAT -------------- 20121017170716 SQL> exit [oracle@localhost ~]$ cd app/oracle/diag/rdbms/orcl/orcl/trace/ [orac…