standingzzz's Oracle memo

OracleSQLチューニングの豊富な経歴を生かして、主に11gと12cのオプティマイザ動作の違いなどについて、実用的な検証結果をメモしています。

12c

Oracle12c PROCEDURE/FUNCTION COMPILE時のORA-04068回避方法

概要 SESSION-AでFUNCTIONをRECOMPILEすると、その以前から接続していたSESSION-Bで、 ORA-04068が発生するというので、調査した際のメモです。 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production CentOS Linux release 7.3.16…

Oracle12c ヒント句による実行計画の制御[ORDERED, LEADING, USE_NL, INDEX, OPT_PARAM]

概要 SQLが望ましくない実行計画となっている場合に、 ヒント句により結合順などを制御する例をあげます。 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production CentOS Linux release 7.3.1611 (Core) 検証 結合テスト用オブジェ…

Oracle12c 接続中のPDBをSQLPLUSからSQLで確認する

概要 11gまでは接続先を確認する場合、v$instance見て、show userして、 という具合で良かったのですが、12cでPDBに繋いでいる場合の 確認方法がサッと出てこなかったので、メモです。 Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit P…

Oracle12c SQL*Loader(12.2.0.1)を動かしてみる

概要 こちらでインストールしたSQL*Loaderを動かしてみます。 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production CentOS Linux release 7.3.1611 (Core) 検証 テスト用テーブル作成 ^ 郵便番号データロード用テーブル SQL> ed …

Oracle12c INDEXがUNUSABLEになるとEXTENT,SEGMENTは削除される

概要 ALTER TABLEなどでINDEXがUNUSABLEとなった場合に、EXTENT、SEGMENTは削除されるという事象の検証(というかメモ)です。 OracleMasterの教科書に載っているような話らしいですね。資格は持っていないので知らないです。 Oracle Database 12c Enterpris…

Centos7にOracle12cのSQL*Loader(12.2.0.1)をインストール

概要 Oracle12cR2のSQL*Loaderをインストールして接続するまでのメモです。 手順 rpmのダウンロード 直リンクだといつしか変わっていたりするので、下記ページで 「oracle client download Linux x86-64」を検索して、 http://www.oracle.com/technetwork/to…

python3.6でOracle12c接続の確認(cx_Oracle)

概要 python3.6でOracle12cへ接続してSQLを実行する際のメモです。 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production CentOS Linux release 7.3.1611 (Core) Python 3.6.2 確認 接続情報 DBserver:oracle12c.test port:1521…

CentOS7にOracle12cのInstantClient(12.2.0.1)をインストール

概要 OracleClientをインストールして、SQLPLUSで接続するまでのメモです。 手順 rpmのダウンロード 直リンクだといつしか変わっていたりするので、下記ページで 「oracle client download Linux x86-64」を検索して、 http://www.oracle.com/technetwork/to…

Oracle12c OPTIMIZER_FEATURESによるNOT EXISTS句の実行計画の違いを確認する その2

概要 OPTIMIZER_FEATURESによるNOT EXISTS句の実行計画の違いを確認します。 その1ではSELECT句をcount(*)のみにしたことで、 12.2.0.1のELIMINATE_JOINにより、tab_bのJOINが省略される実行計画となりましたので、 tab_bのカラムをSELECT句に入れたSQLで…

Oracle12c OPTIMIZER_FEATURESによるNOT EXISTS句の実行計画の違いを確認する その1

概要 OPTIMIZER_FEATURESによるNOT EXISTS句の実行計画の違いを確認します。 検証のベースとなるSQL select count(*) from tab_a a left join tab_b b on b.id = a.id and b.cdate > sysdate - 1/24 where not exists ( select 1 from tab_b b2 where b2.id …

Oracle12c Centos7 VARCHAR2のカラム長の拡張を検証 Part3.

概要 Part2.の続きです。 拡張データ型カラムの追加、変更、インデックスの作成を検証します。 Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production CentOS Linux release 7.3.1611 (Core) 検証 拡張データ型カラムの追加、変更 …

Oracle12c Centos7 VARCHAR2のカラム長の拡張を検証 Part2.

概要 Part1.の続きです。 マニュアルの記載に沿ってMAX_STRING_SIZEを変更してみます。 ^ PDBのVARCHAR2、NVARCHAR2およびRAW列の最大サイズを増加する 1. PDBを停止します。 2. PDBを移行モードで再オープンします。 3. PDBのMAX_STRING_SIZEの設定をEXTEND…

Oracle12c Centos7 VARCHAR2のカラム長の拡張を検証 Part1.

概要 「PDBのVARCHAR2の最大サイズを増加する」を検証していきます。 テーブル、インデックスを事前に作成して、カラムのmodify、add、そのカラムに対するインデックスの作成を実施します。 VARCHAR2(4000)やCLOBにインデックス貼りたいという要望は、結構あ…