ねら~ITエンジニア雑記

やきうのお兄ちゃんが綴るOracle Databaseメインのブログ

2015-01-01から1年間の記事一覧

複数セッションから DBMS_LOCK.ALLOCATE_UNIQUE を実行して、「enq: UL - contention」の P1, P2, P3 の違いを調べてみる。

「enq: UL - contention」は DBMS_LOCKパッケージ で 明示的 に 排他ロックを取得した場合に出る 待機イベント なんやで。彡(゚)(゚)複数セッション で DBMS_LOCK.ALLOCATE_UNIQUE を実行して、 「enq: UL - contention」の P1, P2, P3 の違いを調べてみるやで…

まだ統計固定で消耗してるの? - JPOUG Advent Calendar 2015 (Day9) -

JPOUG Advent Calendar 2015 の 9日目となります。 昨日の記事は charade_oo4oさん の Oracle on Hyper-V 2015 でした。昨日の charade_oo4oさん や 渡辺 剛さんの記事、s4r_agentさんの記事など、 世の中は確実に Cloud な感じやね。彡(゚)(゚)さて今年のワイ…

ASM使用時 に DISK_ASYNCH_IOパラメータ を変えて、LGWR/DBWRプロセスのシステムコールを見てみる。

まず REDOログ/データファイル の格納場所を確認、どちらもASM上に配置されています。 SET PAGESIZE 100 SET LINESIZE 170 COLUMN MEMBER FORMAT A80 SELECT GROUP#, MEMBER FROM V$LOGFILE; GROUP# MEMBER ---------- -----------------------------------…

Oracle Enterprise Linux のバージョンを確認してみる。

/etc/oracle-release を参照すると、Oracle Enterprise Linux のバージョンを確認できます。 $ cat /etc/oracle-release Oracle Linux Server release 6.7 Oracle Enterprise Linux は RedHat互換なので、/etc/redhat-release もあります。 $ cat /etc/redha…

Oracle Clusterwareに登録したDBリソース名でoratabが更新されるけど、DBリソース名はDB_UNIQUE_NAMEと同じにしといた方が良い。

言いたい事は件名で語り尽くしてしまったけど、kwsk解説。 oratab に記載されるエントリは Oracle Clusterware の oraagentプロセス に よって自動更新されます。下記マニュアルに記載の仕様やで。 Oracle Real Application Clustersインストレーション・ガ…

MNPしたらGoogle認証(ログイン)の2段階認証が出来なくて悶絶した。

MNP

iPhone6s/6s Plus が発表されて世の中がざわつく中、と云う訳で、今まで使ってた iPhone5 を MNP(au⇒SB) で機種変更した訳ですよ。 iPhone6(無印)に。 いやー、以前ほどでは無いにせよ、旧機種の MNPって色々メリットが 多いんですよね。一括0円とか、CBと…

自宅PC(Windows8.1)の Chrome が頻繁にフリーズするようになったので、色々やった。

PC

表題の通りで、自宅PC(Windows8.1) の Chrome が頻繁にフリーズするようになってしまったので、色々やった。 ・全ての拡張機能を停止 ⇒ 効果無し ・履歴/キャッシュ/ユーザプロファイル削除 ⇒ 効果無し ・Google Chrome自体を再インストール(32bit/64bit両…

Oracle の SYSTIMESTAMP は小数点以下の何桁を取得できるか?

小数点以下「6桁」まで取得できるみたい。μ秒(10^-6)って事か(゚ε゚ ) SELECT TO_CHAR(SYSTIMESTAMP, 'YYYY/MM/DD HH24:MI:SS.FF9') AS NOW_TS FROM DUAL NOW_TS -------------------------------------------------------------------------------- 2015/09/0…

EXPLAIN PLAN FOR 〜(※AUTOTRACE TRACEONLY含む)で出てくる実行計画 と SQL実行時の実行計画が異なるケースを作ってみる。

EXPLAIN PLAN FOR 〜(※AUTOTRACE TRACEONLY含む)で出てくる実行計画 と SQL実行時の実行計画が異なるケースを作ってみるZe!(`・ω・)Ъ幾つかパターンは有るんですが、WHERE句の範囲検索を バインド変数で指定するケースでやってみます。簡単なんで。まず服は脱…

Oracle の ASH(Active Session History) から リテラルSQL を追跡してみる。

Oracle の ASH(Active Session History) から リテラルSQL を追跡してみます。ASH にはアクティブなセッションの履歴情報、もう少し詳しく言うと DB CPU または 待機状態(Disk IO/ロック待ち/Network待機/etc...) の セッション情報 が 1回/1秒 の間隔で自動…

Oracle の JDBC Thin Driver で Net Trace を取得する。

まず服を脱ぎます。まず "トレース用" のJDBCドライバをダウンロードします。 ojdbc*_g.jar を Oracle のサイトからダウンロードしてきます。JDBCドライバはバージョンが幾つかありますが、差し当たり11gR2(11.2.0.4)の "トレース用"JDBCドライバを下記サイ…

APPENDヒント付きの INSERT 〜 SELECT 〜 文のロック範囲が、INSERT文側のPARTITION句有無で異なる。

通常、APPENDヒント付きの INSERT 〜 SELECT文 は 排他ロック を表全体で獲得します。例えば以下の SQL文 を別セッションから併行で実行すると、 後から実行した SQL は TM enqueue で待機します。 -- ★セッション1 INSERT /*+ APPEND */ INTO TBL_B SELECT…

Oracle Datapump の export(expdp) で出力される dmpファイル の OSグループ を制御する。

Oracle Datapump の export(expdp) で出力される ダンプファイル は、 通常 ${ORACLE_HOME}/bin配下の oracleバイナリと同一の owner:group で出力されます。 [oracle@host1 ~]$ . .ayshibat [oracle@host1 ~]$ ls -la $ORACLE_HOME/bin/oracle -rwsr-s--x 1…

enqueue(ロック) の 待機させている方(ホルダー) と 待機している方(ウェイター) を出力する SQL

Oracle Database の enqueue(ロック) の 待機させている方(ホルダー) と 待機している方(ウェイター)を出力するには、V$LOCKビューを参照します。以下の SQL を実行します。 SET LINESIZE 300; COLUMN SESS FORMAT A20; SELECT DECODE(request,0,'Holder: ',…

LOB型(BLOB / CLOB / BFILE)のデータの長さ(バイト数 or 文字数)を確認する(DBMS_LOB.GETLENGTHファンクション)

※2018/8/20訂正:DBMS_LOBパッケージのGETLENGTHファンクションは、BLOB型はバイト数を戻しますが CLOBについては文字数を返します。バイト数ではありません。謹んでお詫び申し上げます。 下記の記事も参照して下さいやで彡(゚)(゚) CLOB型の(文字数ではなく)…

共有プール上の特定カーソルを狙い打ちで age out(消去)する。(DBMS_SHARED_POOL.PURGEプロシージャ)

共有プールの特定カーソルを狙い打ちで age out(消去) するには、 DBMS_SHARED_POOLパッケージの PURGEプロシージャ を使用します。まず V$SQLAREA を 参照して、age out したい SQL の ADDRESS値 と HASH_VALUE値 を確認します。 SQL> SET LINESIZE 170; SQ…