114
90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部 201512124夜もよか!!オラクル勉強会

90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

90分でつかむ Oracle Database 12c 新機能

日本オラクル株式会社

データベース事業統括 ソリューション本部

2015年 1月21日

第24回 夜もよか!!オラクル勉強会

Page 2: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 2

以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。

OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。

Page 3: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 3

Program Agenda

Part 1

Oracle Database 12c 新機能概要

Part 2

Tom Kyteが選ぶ12の新機能

Page 4: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 4

データベース・クラウドのために開発された 初のオラクル・データベース

Oracle Database 12c

Page 5: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 5

Oracle Database | 絶え間ない技術革新

クラウド環境のためにデータベース層でのマルチテナントを実装

「マルチテナント・アーキテクチャ」 Oracle Database 12c

Oracle Database 11g データベースの処理をさらに高速に、プラットフォームとしての1つの完成形

「Oracle Exadata Database Machine」

Oracle Database 10g データベースは”インフラ”に

「Grid Infrastructure」

Oracle9i Database 可用性の追求

「Oracle Real Application Clusters」

Oracle8i Database インターネット時代のデータベース

「大容量機能」「パラレル処理」

Page 6: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 6

Oracle Database 12c R1 キーメッセージ CONSOLIDATING DATABASES ON CLOUD

1. マルチテナント・アーキテクチャの採用

データベース層でマルチテナントを実装することで、 統合をより高密度でシンプルに

2. データベース・クラウドに必要な機能強化

自動データ管理・セキュリティ・高可用性の機能により運用負荷を軽減

Page 7: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 7

データベース層でマルチテナントを実装する アドバンテージ

1. リソースのオーバーヘッドが少ない より高密度な統合をシンプルに実装し、リソース効率が向上する

2. 統合の負荷が少ない アプリケーションからは統合後のデータベースは統合前と同じに見えるため変更が不要

3. 運用管理の工数は大幅に削減 複数のシステムを1個のデータベースとして管理する「manage many as one」 パッチ適用、アップグレード、バックアップなどの運用業務をシンプル化

4. システム間の独立性を保つ ユーザー・権限をシステムごとに分離、パッチ適用・アップグレード等での柔軟な選択肢

Page 8: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 8

Oracle Database 12c R1 の新機能

500を超える新機能

新機能マニュアルでは320の新機能を紹介

– アプリケーション開発(68)

– BI & Data Warehouse(34)

– 圧縮とアーカイブ(13)

– データベース全般(18)

– 高可用性(61)

– 管理性(11)

– Oracle RAC & Grid Infrastructure(30)

– パフォーマンス(6)

– セキュリティ(24)

– Spatial & グラフ(15)

– 非構造化データ(35)

– アップグレード(2)

– Windwos(3)

Page 9: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 9

Oracle Database 12c 新機能(抜粋) マルチテナント型のデータベース統合、クラウドに必要な可用性、運用の自動化を提供

Cloud & Consolidation

Information Lifecycle

Management

Security

Cluster

High Availability

Multitenant Architecture DB内に仮想DBを複数持つ構成

Heat Map データ利用頻度を目に見える形でレポートする

Data Redaction DBユーザ毎に動的マスキング

Flex ASM ASMインスタンスとDBインスタンスを分離して配置

Far Sync (Data Guard) 最小負荷でデータロスの無い災対サイトを構築

Automatic Data Optimization

ポリシーベースでデータ運用を自動化する

Privilege Analysis 特権ユーザの利用状況を分析レポートとして発行する

Global Data Services 複製サイトをまとめてサービス化し、障害時の切替に負荷分散を適用

Consolidated Testing 複数環境の合計負荷テスト

Application Continuity DBがダウンした際、成功するまでトランザクションをリプレイする

Page 10: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 10

Cloud & Consolidation

アプリケーションの変更が不要

マルチテナントでかつそれぞれが分離

データベース構築期間の短縮

セキュアで高い可用性

ITコストの削減

複数データベースを単一データベースとして管理

高いリソース使用効率

高パフォーマンスでスケーラブル

マルチテナント・アーキテクチャ :

複数の仮想データベース間でデータベース・インスタンスとメモリー、プロセスを共有

システム・グローバル領域

プロセス群

仮想DB : ERP

データファイル

仮想DB: CRM

データファイル

仮想DB: DWH

データファイル

Oracle インスタンス

マルチテナント・コンテナ・データベース

制御ファイル

データファイル

アーカイブREDOログファイル

REDOログ・ファイル

Page 11: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 11

マルチテナント・アーキテクチャ

マルチテナント・アーキテクチャでの構成にはMultitenant Container Database (CDB) と呼ばれる新しいデータベースを作成します。CDB内にはメモリ領域、プロセス、制御ファイルなどが構成され、各システムはPluggable

Database (PDB) と呼ばれる仮想的なデータベース単位で管理されます

単一のCDBに複数のPDBを持つ場合には Multitenant のライセンスが必要です

データベース内に仮想的なデータベースを作る機能

システム・グローバル領域

システム・グローバル領域

プロセス群

PDB : ERP

データファイル

PDB : CRM

データファイル

PDB : DWH

データファイル

Oracle インスタンス Oracle インスタンス

データベース データベース (CDB)

制御ファイル

データファイル

アーカイブREDOログファイル

REDOログ・ファイル

データファイル

データファイル

データファイル

制御ファイル

データファイル

アーカイブREDOログファイル

REDOログ・ファイル

プロセス群

従来のデータベース構成 データベースごとに独立したインスタンスを立ち上げメモリ領域を確保する。

マルチテナント・アーキテクチャ

複数のPDB間でデータベース・インスタンスとメモリ領域、プロセスなどを共有する。

ERP CRM

・・・

・・・

Page 12: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 12

Consolidated Testing システム統合後の稼働イメージを再生

SALES

HR

ERP

CRM

個別サーバで運用されているシステムのワークロードを取得

個々の DB のワークロードを統合してリプレイ

個別に稼働しているシステムの実際の稼働状態をそれぞれ記録し、統合後の状態として合わせて再生することで負荷状況のシミュレートを行う機能

スキーマ統合、プラガブル・データベースによるデータベース統合の評価などに有効

リプレイ先として特定の PDB を指定することも可能

Page 13: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 13

いままでのデータ管理

【管理者が判断】 管理者が対象データとタイミングを

随時判断して実行

【データベースが管理】 一度ポリシーを設定すると、その後はデータの利用頻度からデータベース

自身が管理

policy

compress

archive

move

compress

archive

move

analyze

Oracle Database 12c (Advanced Compression)

Information Lifecycle Management データベースが自動的にデータを管理

Page 14: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 14

HEAT MAP データがアクセスされる頻度をデータベースが管理

まれに参照されるが更新は無い

頻繁ではない参照、まれに更新

頻繁に参照・更新 SELECT SELECT UPDATE

SELECT SELECT

UPDATE

UPDATE

UPDATE

Heat Map:

セグメント、ブロック/エクステントのレベルで利用状況を監視

Information Lifecycle Management

Page 15: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 15

AUTOMATIC DATA OPTIMIZATION

使われていないデータを自動的に圧縮・移動する

Policy-1: 90日更新が無ければ圧縮

Policy-2: 180日変更がなければアーカイブ Policy-2

Policy-1

Automatic Data Optimization:

表に設定されたポリシーにしたがって、アクセス状況に応じてデータを自動配置

ALTER TABLE sales

ILM ADD CompressionPolicy

COMPRESS Partitions for Query

AFTER 90 days from creation;

ALTER TABLE sales

ILM ADD MovePolicy

TIER Partitions TO ‘Archive_TBS’

AFTER 180 days of no modification;

Policy1:

作成から90日後経ったら圧縮

Policy2:

180日以上変更がなければアーカイブ

Information Lifecycle Management

Page 16: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 16

Security Data Redaction:

アクセスするユーザーやアプリケーションに応じて、データを動的にマスク

ユーザーに対しポリシーを設定することで、結果の返し方を設定

結果の返し方は、伏字・置き換え・ランダムなどから選択して Enterprise Manager から指定が可能

Soc. Sec. # 115-69-3428

DOB 11/06/71

PIN 5623

ポリシーを

有効化して

データを

リダクション

● コールセンタ

業務に関係ない個人情報は参照させないため、社会保障番号やIDなどの情報は伏字にしてアプリケーションに表示

● 給与担当者

業務上必要となるので、全ての情報をアプリケーションに表示

Page 17: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 17

Privilege Analysis 不正アクセスの原因となる過度な権限付与を検出

ユーザーやロールに付与されたシステム権限、オブジェクト権限の使用・未使用を

洗い出してレポーティング

アプリケーションや開発者・管理者に本当に必要する権限のみを付与

最小権限の原則を実現し、不正アクセスの未然防止に

Privilege Analysis

Create …

Select …

Update …

DBA role

APPADMIN role

どのユーザーがどの権

限でどの操作を行なっているかを分析

高度な権限を持つロールが不要なユーザーに与えられていないかどうかをチェック

Page 18: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 18

Flex ASM ストレージ・グリッドとデータベース・グリッドを分離することで可用性を向上

データベースインスタンスとASMインスタンスの依存関係を取り除き、それぞれ独立したクラスタとして構成

ASMインスタンスを持たないRACノードは他ノードのASMクライアントとして動作し、接続先のASMインスタンスがダウンした場合には、他のASMインスタンスに接続を切り替える

ASMインスンタンスの障害にデータベースインスタンスが影響を受けなくなるため、データベースサーバは生きたままの運用が可能であり、更にASMインスタンスの可用性も確保されるようになる

ASM Cluster Pool of Storage

Node2

Disk Group B Disk Group A

Node3 Node5 Node4 Node1

ASM Instance

Database Instance

ASM Disk

RAC Cluster

ASM Cluster Pool of Storage

Disk Group B Disk Group A

ASM Instance

Database Instance

ASM Disk

RAC Cluster

Node5 Node4 Node3 Node2 Node1 Node5

Page 19: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 19

Far Sync インスタンス 本番環境 スタンバイ環境

同期 非同期 サイトA サイトB

Far Sync 災害対策サイトなどの遠隔スタンバイでゼロ・データロスを実現

従来の同期転送でのネットワーク遅延やコミット処理への影響を最小化

Far Sync インスタンスと呼ばれるログ転送専用インスタンスから転送処理を行うため、同期転送時のネットワーク・レイテンシを最小限に押さえ、本番環境へのパフォーマンス影響を最小化した上でゼロデータロスの環境を構築

Page 20: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 20

Global Data Services (GDS) レプリケーション・サイト間でのフェイルオーバーとロードバランシングを実装

データセンターをまたがる複数のサイト間をサービスとしてまとめ、障害発生時の切り替えをロードバランスを考慮した上で自動的に行い、手動による切り替えのラグや管理の負荷を下げることができる

複数のデータセンターにスタンバイ環境がまたがっているなどで、複数サイトでの障害などが想定される場合に有効

Global Data Services

Primary

Active

Standby

GoldenGate

従来のバックアップサイト切替 組合せごとに複製や切替の方法が異なり、また切替時の負荷分散は手動管理となる

Global Data Service

本番環境とスタンバイ環境を複数まとめてサービスとして登録し、サービス内で負荷分散を配慮した切替を行う

Page 21: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 21

参考資料:主要新機能のライセンス

機能名 必要ライセンス 備考

マルチテナント・アーキテクチャ Multitenant マルチテナント構成の場合のみ。シングルテナント構成は各Editionの機能として利用可能。

Heat Map Advanced Compression

Automatic Data Optimization(自動データ最適化) Advanced Compression

Data Redaction Advanced Security

Privilege Analysis Database Vault

Far Sync Active Data Guard Far Syncインスタンスは本番環境とは別筐体にインストー

ルする必要がありますが、そのために別途ライセンスを購入する必要はありません

Global Data Service Active Data Guard

Application Continuity Active Data Guard Real Application Clusters

構成に応じていずれかが必要

Consolidated Testing Real Application Testing

Page 22: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 22

対応プラットフォーム情報

Linux x86-64

– Oracle Linux 6

– Oracle Linux 5 Update 6

– Red Hat Enterprise Linux 6

– Red Hat Enterprise Linux 5 Update 6

– SUSE Linux Enterprise Server 11 SP2

Oracle Solaris on SPARC(64-bit)

– Oracle Solaris 11 SRU 7.5

– Oracle Solaris 10 Update 10

Oracle Solaris on x86-64(64-bit)

– Oracle Solaris 11 SRU 7.5

– Oracle Solaris 10 Update 10

Windows x64(64-bit)

– Windows Server 2008 x64

– Windows Server 2008 R2 x64

– Windows Server 2012 x64

– Windows 7 x64

– Windows 8 x64

現在までにリリースされてるもの

詳細な情報は My Oracle Support の動作保障タブより確認

Page 23: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 23

アップグレード・パス 直接アップグレード可能なバージョンは、10.2.0.5/11.1.0.7/11.2.0.3-

Oracle Database 12cR1

Oracle Database 11gR2

Oracle Database 11gR1

Oracle Database 10gR2

10.2.0.5 11.1.0.7

11.2.0.1

11.2.0.3 -

11.1.0.6 10.2.0.1

- 10.2.0.4

Page 24: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 24

クライアントとサーバーの互換性情報 NOTE:207303.1 Client / Server / Interoperability Support Matrix For Different Oracle Versions

クライアント・ バージョン

サーバー・バージョン

12.1.0 11.2.0 11.1.0 10.2.0

12.1.0 ○ ○ △ △*

11.2.0 ○ ○ △ △*

11.1.0 △ △ △ △*

10.2.0 △* △* △* △

△:Extended Support(ES)契約を有する場合のみ不具合修正が可能 *: 11.1 以上 から 10.2 へデータベース・リンクを利用する PL/SQL を使用する場合、10.2.0.2 以上

Page 25: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 25

非互換情報(一部)

サポートが終了した機能

– Oracle Enterprise Manager Database

Control

– RAW デバイス

– Oracle Change Data Capture(CDC)

非推奨の機能

– Oracle Streams

– Oracle Database Advanced Replication

– Server Control Utility の一文字オプション

– Oracle Restart

デフォルト動作の変更

– DB_SECUREFILE パラメータ

– PARALLEL_MIN_SERVER パラメータ

– PRE_PAGE_SGA パラメータ

– XMLDB のインストール

– RAC 環境での Direct NFS

参考:Oracle Database Upgrade Guide 12c Release 1 (12.1) 【アップグレード・ガイド】 8 Oracle Database 12cで非推奨となった機能とサポートが終了した機能

Page 26: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 26

EM Express Database Control に代わる新しいデータベース管理ツール

特別なインストール不要

– データーベース作成時に構成可能

– 利用に際し追加のミドルウェア・ コンポーネントは不要

– DB 内の XDB サーバーを利用

軽量・小さなフットプリント

– ディスク使用量 : 20MB 程度

– DB サーバーは SQL の実行のみ

– UI 画面の生成は

100% ブラウザ側で実行

Oracle Database 12c 以降は Enterprise Manager Database Control のサポートが終了し

Enterprise Manager Database Express(EM Express)に置き換わります

Page 27: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 27

EM Express で提供される機能 基本管理機能とパフォーマンス診断・チューニングに特化

基本管理機能

– 記憶域管理(表領域、UNDO、REDO ログ管理など)

– セキュリティ管理(ユーザー、ロール、プロファイル管理など)

– 構成管理(初期化パラメータ、メモリ管理など)

パフォーマンス診断・チューニング

– パフォーマンス・ハブ

(リアルタイム・パフォーマンス監視、ADDM、ASH 分析など)

– SQL チューニング・アドバイザ

メトリック監視や起動 / 停止、バックアップなどの機能を利用する場合は

Oracle Enterprise Manager Cloud Control を使用

Oracle Diagnostics Pack

Oracle Tuning Pack

Page 28: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 28

EM Express で提供される機能 EM Express メニュー

Page 29: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 29

EM Express の構成 DBCA を使用してデータベース作成時に構成

DBCA (Database Configuration Assistant) - 管理オプション画面

チェックを付けると DB 作成時に EM Express を自動構成 [デフォルト構成内容]

プロトコル: https

ポート: 5500

* 5500 番が既に使用されている場合は

5501 ~ 5599 の範囲から順に空きポートを探して使用

Page 30: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 30

EM Express の構成

DBCA (Database Configuration Assistant) - データベース作成完了画面

EM Express へアクセスするための URL を表示 https://<host name>:<port>/em

DBCA を使用してデータベース作成時に構成

Page 31: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 31

Oracle Enterprise Manager Cloud Control

• 監視対象ホストへ管理エージェントをデプロイし、管理エージェントを介して データベース、WebLogic Server、Exadata などのターゲットを監視・管理

• ターゲットから収集したメトリックなどはリポジトリ DB へ格納

• 複数ターゲットを集中管理

• Oracle Database 12c 対応

– Database Plug-in 12.1.0.3 以上で対応

Database Plug-in 12.1.0.3

Oracle Enterprise Manager 12c Release 2(12.1.0.2)で利用可

Database Plug-in 12.1.0.4

Oracle Enterprise Manager 12c Release 3(12.1.0.3)で利用可

アプリケーションからストレージまでフル・スタックを統合管理

Page 32: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 32

Database Configuration Assistant(DBCA)の変更点 Net Configuration Assistant(NetCA)の一部包含

DBCA のステップ内でリスナーの作成が可能

事前に NetCA によりリスナーを作成する必要なし

Page 33: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 33

Database Configuration Assistant(DBCA)の変更点 マルチテナント・アーキテクチャへの対応

CDB および PDB の作成が DBCA からも可能

Page 34: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 34

管理権限の拡張 新しい権限およびユーザー

タスク固有の権限および最小限の管理権限を導入

– これまでは SYSDBA権限の付与だった

– バックアップ担当者などからのユーザーデータの参照を制限

ユーザー/権限 概要

SYSBACKUP Oracle Recovery Manager(RMAN)や SQL*Plus を使用し、

バックアップおよびリカバリ管理を実施可能

SYSDG Data Guard 環境の監視・管理を実施可能

SYSKM 透過的データ暗号化(TDE)の暗号化鍵管理を実施可能

Page 35: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 35

Part 2

Tom Kyteが選ぶ12の新機能

データベース技術者向けのQ&Aサイト「Ask Tom(URL)」の主宰者トム・カイト(Thomas Kyte)が取り上げるOracle Database12c の新機能12

トム・カイト(Thomas Kyte):1993年にオラクル・コーポレーションに入社、データベース技術者からの質問に答える人気Q&Aサイト「Ask Tom」を主宰するデータベース技術者Expert Oracle Database Architecture(Apress,2005,2010)など多くの書籍を執筆している。

http://asktom.oracle.com/

http://www.oracle.com/technetwork/jp/database/articles/asktom/

Page 36: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 36

Tom Kyteが選ぶ12の新機能

プラガブル・データベース

SQLからPL/SQLへのバインド処理の改善

デフォルト値関連の新機能

データサイズ拡張

Top-N検索の簡易化

行パターンマッチング

パーティショニング関連の新機能

実行計画最適化の強化(適応計画)

統計情報に関する新機能

Temporary UNDO

データ配置最適化

アプリケーションの継続性

Page 37: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 37

プラガブル・データベース

Page 38: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 38

データベース・クラウドのアーキテクチャ Oracle Database 12c で実現する新たなアプローチ

Operating System Database Server Multitenant

Architecture

Hypervisor Hypervisor

OS OS

DB

OS

DB DB

App App App

OS OS

DB DB DB

App App App

OS OS

DB

App App App

OS OS

12c CDB

PDB PDB PDB

App App App

サーバー仮想化 Real Application Clusters

(RAC) データベース・スキーマ

スキーマ スキーマ スキーマ

Page 39: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 39

マルチテナントを実現する新しいアーキテクチャ Oracle Database 12c で実現する複数データベースの統合

マルチテナント・コンテナ・データベース (CDB)

顧客 管理

販売 管理

経理

プラガブル・データベース

(PDB)

Page 40: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 40

マルチテナント・コンテナ・データベースの物理構造 データベース関連ファイル

CDB CDB$ROOT

制御ファイル

REDO ログ

ファイル

アーカイブ

REDO

ログファイル

PDB 2

データファイル

SYSTEM SYSAUX USERS TEMP

PDB$SEED

データファイル

SYSTEM SYSAUX TEMP

データファイル

SYSTEM SYSAUX USERS TEMP UNDO

データファイル

SYSTEM SYSAUX USERS TEMP

PDB n

・・・

PDB 1

データファイル

SYSTEM SYSAUX USERS TEMP

マルチテナント・コンテナ・データベース(CDB) マルチテナント・アーキテクチャを実現するデータベース

プラガブル・データベース(PDB)

Oracle データベース内における論理的なセット

ユーザーやアプリケーションからは通常のデータベースと同様に扱える

シード (PDB$SEED) PDB を新規作成する際に使用するテンプレート

Page 41: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 41

アップグレードあるいはパッチ適用作業の簡略化 1回の適用ですべてのプラガブル・データベースに対応

Container Database (12.1)

12.1

PDB1

12.1 PDB3

12.1 PDB2

アップグレード CDB(12.x)

12.x

PDB1

12.x PDB2

12.x PDB3

Page 42: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 42

必要に応じたプラガブル・データベースの移動 データベースのアップグレード、あるいはパッチ適用時にも活用可能

CDB1 (12.1)

12.1

PDB1

12.1 PDB3

CDB2 (12.x)

12.x

PDB3

12.1 PDB2

12.x PDB2

Page 43: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 43

テスト環境、開発環境のためのクローニング 速攻性と柔軟性に優れたコピーやスナップショット

PDB3 PDB2 PDB1

CDB1 (本番環境) CDB2 (開発環境)

テスト

PDB1 PDB1 テスト PDB1

Page 44: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 44

バックアップ・リカバリ時の管理性 容易なバックアップと柔軟なリカバリ

PDB3 PDB2

CDB (本番環境)

PDB1

プラガブル・データベースごと

の Point-in-time リカバリ

1回でデータベース全体をバックアップ

データベース全体の

Point-in-time リカバリ

Page 45: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 45

スタンバイ構成時の管理性 データベース単位で構成し、すべてのプラガブル・データベースをカバー

CDB1 (プライマリ)

PDB1 PDB3

CDB2 (スタンバイ)

PDB2 PDB4 PDB1 PDB3 PDB2 PDB4

Page 46: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 46

データ・ディクショナリ・ビュー データ・ディクショナリ・ビューの種類

データ・ディクショナリ・ビューの種類には、次の 4つがある

CDB_xxx

• ルートおよび全 PDB 内のオブジェクトに関する情報

DBA_xxx

• ルートあるいは PDB 内のオブジェクトに関する情報

ALL_xxx

• ユーザーがアクセス可能なオブジェクトに関する情報

USER_xxx

• ユーザーが所有するオブジェクトに関する情報

New

Page 47: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 47

データ・ディクショナリ・ビューの例 (CDB_xxx) CDB_TABLESPACES ビュー

接頭辞が CDB_ であるビューには、すべてのコンテナの情報が含まれる

– ルートおよび、すべての PDB の情報を確認することが可能

SQL> SELECT TABLESPACE_NAME, STATUS, CON_ID FROM CDB_TABLESPACES;

TABLESPACE_NAME STATUS CON_ID

-------------------- -------------------- ----------

SYSTEM ONLINE 1

SYSAUX ONLINE 1

UNDOTBS1 ONLINE 1

TEMP ONLINE 1

USERS ONLINE 1

SYSTEM ONLINE 2

SYSAUX ONLINE 2

TEMP ONLINE 2

8行が選択されました。

ルートの表領域

PDB の表領域

Page 48: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 48

コンテナ間における接続先の切り替え 再接続あるいは ALTER SESSION 文の使用

コンテナ (ルートあるいは PDB) 間における接続先の切り替えには、次の方法がある

– SQL*Plus による再接続

共通ユーザーおよびローカル・ユーザーで使用可能

– ALTER SESSION 文による接続

共通ユーザーのみ使用可能

SET CONTAINER 権限が必要

CONNECT <USERNAME>/<PASSWORD>@<HOSTNAME>:<PORT>/<SERVICE_NAME>

ALTER SESSION SET CONTAINER = <PDB_NAME>

Page 49: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 49

プラガブル・データベースの作成 状況に応じた作成手法~コピーまたは unplug と plug による作成~

CDB

CDB$ROOT

既存の PDB をコピー 2

シードをコピー 1

Non-CDB Non-CDB を plug

3

CDB

PDB を unplug して plug 4

Page 50: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 50

SQLからPL/SQLへのバインド処理の改善

Page 51: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 51

DECLARE

fruits pkg.names;

dyn_stmt VARCHAR2(3000);

BEGIN

fruits := pkg.names('apple','banana','cherry');

dyn_stmt := ‘BEGIN print_names(:x); END;’;

EXECUTE IMMEDIATE dyn_stmt USING fruits;

END;

Enhanced SQL to PL/SQL Bind Handling

11gまでは引数や戻り値のデータ型にSQLデータ型以外を使用不可

12c では、以下の型のパラメータを持つPL/SQL関数を起動可能

– Boolean

– パッケージ仕様部で宣言されたレコード

– パッケージ仕様部で宣言されたコレクション

機能概要

CREATE OR REPLACE PACKAGE pkg

AUTHID CURRENT_USER AS

TYPE names IS TABLE OF VARCHAR2(10);

PROCEDURE print_names (x names);

END pkg;

/

CREATE OR REPLACE PACKAGE BODY pkg AS

PROCEDURE print_names (x names) IS BEGIN

FOR i IN x.FIRST .. x.LAST LOOP

DBMS_OUTPUT.PUT_LINE(x(i));

END LOOP;

END;

END pkg;

/

Page 52: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 52

デフォルト値関連の新機能

Page 53: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 53

デフォルト値関連の新機能

シーケンスに基づく列のデフォルト値

列のデフォルト定義でのNULLのデフォルト値

メタデータのみのデフォルト値

Identity列の導入

Page 54: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 54

シーケンスに基づく列のデフォルト値

Oracle Database 12cより、列のデフォルト値として、シーケンスを指定可能

– デフォルト値として指定することで、実際にinsertされた時に採番が行われる

従来までは、insert文の中でしか採番をすることができなかった

設定方法

– create tableやalter table文の列定義のdefault句でシーケンス名を指定する

事前にシーケンスを作成しておく必要がある

– CURRVALとNEXTVALを指定可能

– シーケンスの属性などは従来までの設定を使用可能

Page 55: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 55

シーケンスに基づく列のデフォルト値

注意点

– insertするユーザーが設定されたシーケンスに対するselect権限を必要

– シーケンスが削除されると、default値を使用する

後続のinsertではエラーが発生する

– シーケンスの所有者を明示的に指定していない

場合、追加したユーザーのシーケンスとして完全

修飾される

– 既存の表に対して、シーケンスがデフォルトの列

を追加した場合、既存データに対するシーケンスは

保証されない

create sequence test_seq;

create table seq_test_tab

(col1 int default test_seq.nextval primary key,

col2 varchar2(30))

/

insert into seq_test_tab(col2) values ('test');

commit;

select * from seq_test_tab;

COL1 COL2

---------- --------------------

1 test

実行例

Page 56: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 56

列のデフォルト定義でのNULLのデフォルト値

NULLを明示的にinsertする時に、デフォルト値として指定された値に置き換える機能

– ON NULL句を列定義で指定する

– ON NULL句を指定すると、NOT NULL制約とNOT DEFERABLE制約が暗黙的に指定される

NOT DEFERABLE制約:制約に違反しているかどうかをトランザクションではなく、

SQL文単位でチェックを行う

Page 57: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 57

列のデフォルト定義でのNULLのデフォルト値 on null句による動作の違い

on null句を設定しない場合の結果

SQL> create table test_tab

(col1 number,

col2 varchar2(10) default 'AAAAAA');

Table created.

SQL> insert into test_tab(col1) values (1);

1 row created.

SQL> commit;

Commit complete.

SQL> select * from test_tab;

COL1 COL2

---------- ----------

1 AAAAAA

SQL> insert into test_tab values (2,null);

1 row created.

SQL> commit;

Commit complete.

SQL> select * from test_tab;

COL1 COL2

---------- ----------

1 AAAAAA

2

SQL> create table test_tab_on_null

(col1 number,

col2 varchar2(10) default on null 'AAAAAA' );

表が作成されました。

SQL> insert into test_tab_on_null(col1) values (1);

1行が作成されました。

SQL> commit;

コミットが完了しました。

SQL> select * from test_tab_on_null;

COL1 COL2

---------- ----------

1 AAAAAA

SQL> insert into test_tab_on_null values (2,null);

1行が作成されました。

SQL> commit;

コミットが完了しました。

SQL> select * from test_tab_on_null;

COL1 COL2

---------- ----------

1 AAAAAA

2 AAAAAA

デフォルト句のみの場合だと、nullが明示的にinsertされた時にはnullとなるが、on null句を使用する場合、nullがinsertされてもデフォルト値に置き換わる

on null句を設定した場合の結果

Page 58: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 58

メタデータのみのデフォルト値

Oracle Database 11g R1より、デフォルト値を設定した列を追加した時に、メタ

データにのみデフォルト値を格納し、データブロックには変更を加えないことで処理を高速化

– 実際にデータファイルに書き込みを行わないため、領域の使用量も低下する

– Oracle Database 11g R2までは、追加する列にデフォルト値に加え、NOT NULL制約が必要だった

Oracle Database 12cでは、NOT NULL制約は必要なく、デフォルト値を持つ列の追加時には、メタデータのみの変更

– デフォルト値以外のデータをinsertした場合やデフォルト値以外のデータでupdateした場合に、実際に領域が獲得される

機能概要

Page 59: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 59

メタデータのみのデフォルト値

列の追加方法は通常のadd columnコマンドと同じ

– 追加した列(デフォルト値)は、ecol$に格納される

追加した列に対する検索では、SQLが内部的に書きかえられ、実行される

– select col3 from add_col_tab; => select nvl(col3,’AAAAA’) from add_col_tab;

– 10046やSQLトレースでは、以下のようなSQLが再帰SQLとして実行される

– 参考:KROWN 143501 [Oracle11g] 列追加後の検索処理動作について

作成方法と確認方法

SQL> alter table add_col_tab add (col3 varchar2(1000) default 'AAAAA');

表が変更されました。

SQL> select * from sys.ecol$;

TABOBJ# COLNUM BINARYDEFVAL GUARD_ID

---------- ---------- ---------------------------------------- ----------

92071 4 4141414141 0

select binaryDefVal, lengthb(binaryDefVal), guard_id from ecol$ where tabobj# = :1 and colnum = :2

Page 60: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 60

Identity Column

ANSI準拠のIDENTITY column を実装

11gまでは、数値型の一意のIDをカラムとして定義する場合、事前にシーケンスを作成し、

カラムのデフォルト値としてその順序を指定

Identity Column機能により、事前のシーケンス作成は不要

機能概要

SQL> select c1, c2 from t1;

C1 C2

---------- ----------

1 abc

2 xyz

SQL> create table t1

2 (c1 number GENERATED BY DEFAULT ON NULL AS IDENTITY,

3 c2 varchar2(10));

Table created.

SQL> insert into t1(c2) values('abc');

1 row created.

SQL> insert into t1(c1, c2) values(null, 'xyz');

1 row created.

Page 61: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 61

システム生成のシーケンス

Identity列を作成すると、システム生成のシーケンスが作成される

– 手動で削除することは不可、表削除時に自動的に削除

create table t1

2 (c1 number GENERATED BY DEFAULT ON NULL AS IDENTITY,

3 c2 varchar2(10));

表が作成されました。

SQL> select * from user_sequences;

SEQUENCE_NAME

--------------------------------------------------------------------------------

MIN_VALUE MAX_VALUE INCREMENT_BY CYC ORD CACHE_SIZE LAST_NUMBER

---------- ---------- ------------ --- --- ---------- -----------

PARTITION_COUNT SES KEE

--------------- --- ---

ISEQ$$_93414

1 1.0000E+28 1 N N 20 1

N N

SQL> drop sequence ISEQ$$_93414;

drop sequence ISEQ$$_93414

*

行1でエラーが発生しました。:

ORA-32794: システム生成の順序は削除できません

Page 62: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 62

Identity Column 設定例(1) ALWAYS の例

SQL> create table id_test(

2 id number GENERATED ALWAYS AS IDENTITY,

3 ename varchar2(30)

4 );

SQL> insert into id_test(ID, ENAME) values(100, 'user1');

insert into id_test(ID, ENAME) values(100, 'user1')

*

行1でエラーが発生しました。:

ORA-32795: GENERATED ALWAYSで作成されたアイデンティティ列には挿入できません

SQL> insert into id_test(ENAME) values('user2');

1行が作成されました。

SQL> select * from id_test;

ID ENAME

---------- ----------

1 user2

Page 63: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 63

Identity Column 設定例(2) BY DEFAULT の例

SQL> create table id_test2(

2 ID number GENERATED BY DEFAULT AS IDENTITY,

3 ENAME varchar2(30)

4 );

SQL> insert into id_test2(ID, ENAME) values(100, 'user1');

1行が作成されました。

SQL> insert into id_test2(ENAME) values('user2');

1行が作成されました。

SQL> select * from id_test2;

ID ENAME

---------- ----------

100 user1

1 user2

Page 64: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 64

Identity Column 制限事項

表に対して1つのみ定義可能

設定できるカラムのデータ型は数値型

Identity Columnを設定したカラムにはDEFAULT句は指定不可

Identity Columnを設定したカラムには暗黙的に NOT NULL 制約と NOT

DEFERRABLE 制約が付加されるため、競合する制約は定義不可

Identity Columnを暗号化する場合、暗号化アルゴリズムが推測されやすくなるため、強力な暗号化アルゴリズムの設定を推奨

CTAS では Identity Column は継承されない

Page 65: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 65

データサイズ拡張

Page 66: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 66

データサイズの拡張

Varchar2、NVarchar2、RAW型において、最大長が32,767バイトまで定義可能

利用するには下記の2つの初期化パラメータを設定

ただし、EXTENDEDからSTANDARD(従来通りの最大データ長)の変更不可

AS SYSDBA で接続し、SQLスクリプト($ORACLE_HOME/rdbms/admin/utl32k.sql)を実行

参考:他社DBの同データ型最大長

– A社: 32,672バイト

– B社: 8,000バイト

機能概要

compatible = ’12.0.0.0.0’

max_string_size = ‘EXTENDED’

Page 67: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 67

Top-N検索の簡易化

Page 68: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 68

Row Limiting Clause

クエリ結果の行数を制約

OFFSET、行数、パーセントを指定

TOP-N検索を簡易化

Page 69: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 69

Row Limiting Clause

SQL> select owner, object_name, object_id

2 from t order by owner, object_name

3 FETCH FIRST 5 ROWS ONLY;

SQL> select owner, object_name, object_id

2 from t order by owner, object_name

3 OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY;

SQL> select owner, object_name, object_id

2 from t order by owner, object_name

3 FETCH NEXT 0.01 PERCENT ROWS ONLY;

Top 5件の抽出

Top 5件をSkipして次の5件の抽出

0.01%の件数抽出

Page 70: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 70

行パターンマッチング

Page 71: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 71

パターンマッチング

データの値ではなく、値の変化に対して、該当する行を検索する

– とらえたいデータ変化のパターン(前日と比較して値がどう推移したかなど)を検索する

株価の変動に伴う取引や、犯罪件数の変化の検知、クレジットカードの不正利用検知など

– “match_recognize”句を使用する

動作概要

– 行を論理的なサブセットに分割し、

順序付けを行う

– 正規表現を利用したパターン変数を定義

– 定義したパターン変数が各行に対して

マッチするかを判断

定義したそれぞれのパターンが個々の行や

集計の結果の条件として使用される

機能概要

株価の下落と上昇を検知する

Page 72: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 72

パターンマッチング

PARTITION BY : 行を論理グループに分割する

ORDER BY : 分割された論理グループ内で

順序付けを行う

MEASURES : 出力表の列を定義する

PER MATCH : 一致ごとにサマリー表示するか

詳細表示するかを定義する

AFTER MATCH SKIP : 一致が見つかった後の

再開場所を定義する

PATTERN : 一致する行パターンを定義する

DEFINE : PATTERN句で指定するパターン

を定義する

構文

SELECT *

FROM Ticker MATCH_RECOGNIZE (

PARTITION BY symbol

ORDER BY tstamp

MEASURES STRT.tstamp AS start_tstamp,

LAST(DOWN.tstamp) AS bottom_tstamp,

LAST(UP.tstamp) AS end_tstamp,

MATCH_NUMBER() AS match_num,

CLASSIFIER() AS var_match

ALL ROWS PER MATCH

AFTER MATCH SKIP TO LAST UP

PATTERN (STRT DOWN+ UP+)

DEFINE

DOWN AS DOWN.price < PREV(DOWN.price),

UP AS UP.price > PREV(UP.price)

) MR

ORDER BY MR.symbol, MR.match_num, MR.tstamp;

Page 73: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 73

パターンマッチング クエリーの意味

SELECT *

FROM Ticker MATCH_RECOGNIZE (

PARTITION BY symbol

ORDER BY tstamp

MEASURES STRT.tstamp AS start_tstamp,

LAST(DOWN.tstamp) AS bottom_tstamp,

LAST(UP.tstamp) AS end_tstamp,

MATCH_NUMBER() AS match_num,

CLASSIFIER() AS var_match

ALL ROWS PER MATCH

AFTER MATCH SKIP TO LAST UP

PATTERN (STRT DOWN+ UP+)

DEFINE

DOWN AS DOWN.price < PREV(DOWN.price),

UP AS UP.price > PREV(UP.price)

) MR

ORDER BY MR.symbol, MR.match_num, MR.tstamp;

symbol列の値で論理グループを構成し、その中でtstamp列で順序付けを行う

DOWNパターンに該当した行のうち、最後の行の日付をbottom_tstampとして、UPパターンに該当した行のうち、最後の行の日付をend_tstampとして表示する

DOWNを前の行と比較してpriceがそれ以下の時、UPを前の行と比較して、priceがそれ以上の時と定義

DOWNパターンとUPパターンが1回以上続くパターンを検索する

現在の一致の最後の行の次の行でパターン一致を再開する

一致した行が複数にわたる場合、1行ごとに出力をする

Page 74: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 74

パターンマッチング

株価が前日と比較して下落した後、

上昇したパターンを検出する

実行例

SELECT *

FROM Ticker MATCH_RECOGNIZE (

PARTITION BY symbol

ORDER BY tstamp

MEASURES STRT.tstamp AS start_tstamp,

LAST(DOWN.tstamp) AS bottom_tstamp,

LAST(UP.tstamp) AS end_tstamp,

MATCH_NUMBER() AS match_num,

CLASSIFIER() AS var_match

ALL ROWS PER MATCH

AFTER MATCH SKIP TO LAST UP

PATTERN (STRT DOWN+ UP+)

DEFINE

DOWN AS DOWN.price < PREV(DOWN.price),

UP AS UP.price > PREV(UP.price)

) MR

ORDER BY MR.symbol, MR.match_num, MR.tstamp;

SYMBOL TSTAMP START_TS BOTTOM_T END_TSTA MATCH_NUM VAR_MATCH PRICE

------------- ------------ -------------- ---------------- ---------------- -------------------- ------------------ ----------

ORCL 05-08-11 05-08-11 1 STRT 25

ORCL 06-08-11 05-08-11 06-08-11 1 DOWN 12

ORCL 07-08-13 05-08-11 06-08-11 07-08-13 1 UP 15

ORCL 08-08-13 05-08-11 06-08-11 08-08-13 1 UP 20

ORCL 09-08-13 05-08-11 06-08-11 09-08-13 1 UP 24

ORCL 10-08-13 05-08-11 06-08-11 10-08-13 1 UP 25

ORCL 10-08-13 10-08-13 2 STRT 25

ORCL 11-08-13 10-08-13 11-08-13 2 DOWN 19

ORCL 12-08-13 10-08-13 12-08-13 2 DOWN 15

ORCL 13-08-13 10-08-13 12-08-13 13-08-13 2 UP 25

ORCL 14-08-13 14-08-13 3 STRT 25

ORCL 15-08-13 14-08-13 15-08-13 3 DOWN 14

ORCL 16-08-13 14-08-13 16-08-13 3 DOWN 12

ORCL 17-08-13 14-08-13 16-08-13 17-08-13 3 UP 14

ORCL 18-08-13 14-08-13 16-08-13 18-08-13 3 UP 24

MATCH_NUM 1 MATCH_NUM 2 MATCH_NUM 3

Page 75: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 75

パーティショニング関連の新機能

Page 76: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 76

パーティショニング機能の拡張

複数パーティションへの対応

オンラインでのパーティションの移動

リファレンス・パーティションの CASCADE 処理

インターバル・リファレンス・パーティショニング

パーシャル索引

グローバル索引メンテナンスの非同期実行

Page 77: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 77

複数パーティションへの対応 一つのコマンドで複数パーティションをメンテナンス

drop partition

パーティション表

複数のパーティションのメンテナンスは

パーティション毎にコマンド実行が必要

drop partition

drop partition

Partition P02

Partition P01

Partition P03

Partition P04

drop partition

パーティション表

Partition2

Partition1

Partition3

Partition4

複数のパーティションのメンテナンスを

一つのコマンドで一括して実行可能

11g

12c

(ex) 3つのパーティションの削除は DROP PARTITION を3回実行

(ex) 3つのパーティションの削除は DROP PARTITION を1回実行

拡張された処理 DROP / ADD / TRUNCATE / MERGE / SPLIT

Page 78: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 78

複数パーティションへの一括処理

ADD PARTITION

DROP PARTITION

TRUNCATE PARTITION

実行コマンドの例

ALTER TABLE parttab ADD

PARTITION p11 VALUES LESS THAN (111),

PARTITION p12 VALUES LESS THAN (121),

PARTITION p13 VALUES LESS THAN (131);

ALTER TABLE parttab DROP PARTITION p02, p03, p04;

ALTER TABLE parttab TRUNCATE PARTITION p01, p02, p03;

MERGE PARTITION

SPLIT PARTITION

ALTER TABLE parttab MERGE PARTITIONS

p11, p12, p13 INTO PARTITION p10;

ALTER TABLE parttab SPLIT p10 INTO

( PARTITION p11 VALUES LESS THAN (111),

PARTITION p12 VALUES LESS THAN (121),

PARTITION p13 VALUES LESS THAN (131),

PARTITION p14 );

Page 79: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 79

オンラインでのパーティションの移動

DML 実行中の ALTER TABLE .. MOVE PARTITION / SUBPARTITION

の実行が可能に

制限 : ONLINE で実行できないケース

– データベースでサプリメンタル・ロギングが設定されている場合

– 以下の表に対する処理は実行不可

SYS スキーマの表

索引構成表

オブジェクト型の列を持つヒープ構成表

ビットマップ索引 / ビットマップ結合索引 / ドメイン索引 が作成されている表

ALTER TABLE MOVE PARTITION/SUBPARTITION の ONLINE 化

SQL> ALTER TABLE parttab MOVE PARTITION p01 TABLESPACE newtbs ONLINE;

SQL> ALTER TABLE parttab MOVE SUBPARTITION p01_s01 TABLESPACE newtbs ONLINE;

実行例

Page 80: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 80

リファレンス・パーティションの Cascade 処理

CASCADE オプションの追加

– リファレンス・パーティション / リファレンス・インターバル・パーティションに有効

– 親表に対する処理を子表にも自動実行

– 対象となる処理

TRUNCATE PARTITION / SUBPARTITION

– 親表での TRUNCATE 時に子表の対象データも同時に TRUNCATE

– 子表の参照整合性制約に ON DELETE CASCADE オプションの指定が必要

EXCHANGE PARTITION / SUBPARTITION

– 親表での EXCHANGE 時に子表の対象データも同時に EXCHANGE

– EXCHANGE 対象の表も親表・子表で構成しておく必要がある

CASCADE による TRUNCATE / EXCHANGE PARTITION

Page 81: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 81

リファレンス・パーティションの Cascade 処理 1. CASCADE での TRUNCATE PARTITION

◆ 親表

Orders 表名 列名

Ordes

order_id

customer_id

order_date

表名 列名

OrderItems

order_id

line_item_id

product_id

quantity

◆ 子表

OrderItems

参照整合性制約

orderitems_fk

Y2012Q3 Y2012Q4 Y2013Q1

◆ リファレンス・パーティション

• 親表への TRUNCATE 時に

子表への TRUNCATE を自動実行

12c

Y2012Q3 Y2012Q4 Y2013Q1

TRUNCATE

TRUNCATE

CASCADE ON DELETE

CASCADE

Page 82: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 82

リファレンス・パーティションの Cascade 処理 2. CASCADE での EXCHANGE PARTITION

表名 列名

Orders

(親表)

order_id

customer_id

order_date

表名 列名

OrderItems

(子表)

order_id

line_item_id

product_id

quantity

参照整合性制約

orderitems_fk

Y2012Q3 Y2012Q4 Y2013Q1

Y2012Q3 Y2012Q4 Y2013Q1

表名 列名

Y2013Q1_P

(親表)

order_id

customer_id

order_date

表名 列名

Y2013Q1_S

(子表)

order_id

line_item_id

product_id

quantity

参照整合性制約

Y2013Q1_fk

CASCADE

◆ リファレンス・パーティション

• 親表への EXCHANGE 時に

子表への EXCHANGE を自動実行

12c

EXCHANGE

EXCHANGE

Page 83: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 83

インターバル・リファレンス・パーティショニング リファレンス・パーティションの親表をインターバル・パーティションで作成可

◆ 親表

Orders 表名 列名

Ordes

order_id

customer_id

order_date

表名 列名

OrderItems

order_id

line_item_id

product_id

quantity

◆ 子表

OrderItems

パーティション・キー

パーティション・キー不要

参照整合性制約

orderitems_fk Y2012Q3 Y2012Q4 Y2013Q1 Y2013Q2

◆ リファレンス・パーティション

• インターバル・パーティションを

親表とした構成をサポート

自動的に追加

12c

Y2012Q3 Y2012Q4 Y2013Q1 Y2013Q2

自動的に追加

Page 84: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 84

パーシャル索引

パーシャル索引

– 特定のパーティションのみに作成する索引

特定のパーティション/サブパーティションに対する索引の作成

パーティション表

Partition P02

Partition P01

Partition P03

Partition P04 索引作成

索引未作成 アクセス頻度が低い

パーティション

未使用だが削除不可な

パーティション

◆ 索引付けを行わない

・ DISK領域の削減

・ 統計情報取得時間削減

Page 85: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 85

パーシャル索引

パーティション/サブパーティション毎に設定した

INDEXING 属性のON / OFF で制御

索引作成時に INDEXING PARTIAL を指定

ローカル索引・グローバル索引の両方で使用可能

索引作成後に、INDEXING 属性を変更することも可能

– 動的な索引付け・排除が可能

パーシャル索引とは

INDEXING OFF

パーティション表

INDEXING ON

INDEXING ON

Partition P02

Partition P01

Partition P03

Partition P04

INDEXING OFF

索引作成

索引未作成

CREATE TABLE parttab (c1 number, c2 number)

PARTITION BY RANGE(c1)

(PARTITION p01 VALUES LESS THAN (10001) INDEXING OFF,

PARTITION p02 VALUES LESS THAN (20001) INDEXING OFF,

PARTITION p03 VALUES LESS THAN (30001) INDEXING ON,

PARTITION p04 VALUES LESS THAN (maxvalue));

CREATE INDEX parttab_ind1 ON parttab(c1) LOCAL INDEXING PARTIAL;

CREATE INDEX parttab_ind2 ON parttab(c2) GLOBAL INDEXING PARTIAL;

Page 86: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 86

実行計画最適化の強化 (適応計画)

Page 87: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 87

実行計画最適化の強化

SQL 実行時に統計を収集し、より適切なプラン(実行計画)を選択する

最適なプランを生成するために既存の統計では十分でない場合に有用

以下の二つの仕組みでプランを適応

– 適応計画(Adaptive Plans): SQL 実行時にプランの適応を行う

– 自動再最適化(Automatic Reoptimization): SQL 実行時に得た統計を次回の実行時にフィードバックし、プランの適応を行う

Page 88: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 88

適応計画

問合わせ実行時に収集した統計を基に最終的なプランを決定

– 既存の統計を基にプランを作成 (デフォルトプラン)

– 実行時に収集した統計を基に、プランの一部を実行時の条件に適したサブプランに切り替える

設定

– 初期化パラメータで有効/無効の設定

OPTIMIZER_ADAPTIVE_REPORTING_ONLY

デフォルト有効(パラメータ値 FALSE)

レポート表示

– 適応計画によるプランの変化を確認可能

パース

オプティマイゼーション

行ソースジェネレーター

実行

SQL 文 入力

出力

プランの作成

実行時統計を収集し、

最終プランの決定

プランの最終決定は実行時

Page 89: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 89

適応計画の仕組み 動作イメージ

1. 既存の統計情報を基にデフォルトプランを作成

2. 統計コレクタが実際の統計(行数など)を取得

3. 取得した統計を基に使用するサブプランを選択し、最終プランを決定

Hash Join

Table B scan Table A scan

Nested Loops Join

Index scan Table A scan

Hash Join

Table B scan

行数をカウント

デフォルトプラン

閾値を超えたため

サブプランを変更

最終プラン

Nested Loops Join

Index scan

最終的にハッシュ結合を選択 デフォルトプランはネステッドループ結合を選択

統計コレクタ

Page 90: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 90

適応計画のレポート出力

プランの適応内容を表示

– デフォルトプランと適応後のプランを表示

実行時のプランを変更せずに、適応によるプランの変化を確認可能

表示方法

1. レポート・モードに設定

初期化パラメータ OPTIMIZER_ADAPTIVE_REPORTING_ONLYをTRUEにセット

2. SQL文 を実行

3. DBMS_XPLAN.DISPLAY_CURSOR ファンクションの FORMAT パラメータに ’REPORT’ をセットしてプランを表示

select * from table(dbms_xplan.display_cursor(format=>‘report'));

Page 91: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 91

適応計画のレポート出力

------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | | | 7 (100)| | | 1 | NESTED LOOPS | | | | | | | 2 | NESTED LOOPS | | 4 | 948 | 7 (0)| 00:00:01 | |* 3 | TABLE ACCESS FULL | ORDER_ITEMS | 4 | 72 | 3 (0)| 00:00:01 | |* 4 | INDEX UNIQUE SCAN | PRODUCT_INFORMATION_PK | 1 | | 0 (0)| | | 5 | TABLE ACCESS BY INDEX ROWID| PRODUCT_INFORMATION | 1 | 219 | 1 (0)| 00:00:01 | ------------------------------------------------------------------------------------------------------- …(略)… Adaptive plan: ------------- This cursor has an adaptive plan, but adaptive plans are enabled for reporting mode only. The plan that would be executed if adaptive plans were enabled is displayed below. Plan hash value: 1255158658 ------------------------------------------------------------------------------------------ | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ------------------------------------------------------------------------------------------ | 0 | SELECT STATEMENT | | | | 7 (100)| | |* 1 | HASH JOIN | | 4 | 128 | 7 (0)| 00:00:01 | |* 2 | TABLE ACCESS FULL| ORDER_ITEMS | 4 | 48 | 3 (0)| 00:00:01 | | 3 | TABLE ACCESS FULL| PRODUCT_INFORMATION | 1 | 20 | 1 (0)| 00:00:01 | ------------------------------------------------------------------------------------------

デフォルトプランと適応した場合のプランを表示

Page 92: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 92

統計情報に関する新機能

Page 93: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 93

統計情報に関する新機能

動的統計

バルク・ロードのオンライン統計収集

グローバル一時表のセッション固有統計

ヒストグラムの強化

Page 94: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 94

動的統計

動的サンプリングは12cから動的統計(Dynamic Statistics)という名称に変更

設定パラメータとヒントの名前は変更なし

– 初期化パラメータ: OPTIMIZER_DYNAMIC_SAMPLING

– ヒント: DYNAMIC_SAMPLING

Page 95: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 95

動的統計の強化

以前のリリースの動的サンプリングでは、統計情報が欠落しているか、不十分な場合に統計情報を補完

12c では全てのSQLに対して動的統計が有用かどうか、どのレベルで使用するかを自動的に決定することが可能

収集した統計は永続的であり、他のクエリからも使用可能

設定

– サンプリングレベルに11を導入

初期化パラメーター OPTIMIZER_DYNAMIC_SAMPLING を 11 に設定

実行計画のNote部分にlevel=AUTOを表示

Note

-----

- dynamic sampling used for this statement (level=AUTO)

Page 96: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 96

バルク・ロードのオンライン統計収集

12cからバルク・ロード操作の中で統計の収集を自動的に実施

– ユーザーによる統計収集を必要としない

– 表統計、列統計を収集

表統計収集のための追加の表スキャンをしない

インデックス統計、ヒストグラムは収集しない

– 以前のリリースではバルク・ロード後に手動で統計収集

– 無効にする場合、ヒントを設定( NO_GATHER_OPTIMIZER_STATISTICS )

以下のSQL文により実行

– CREATE TABLE AS SELECT

– INSERT INTO … SELECT (空テーブルへのダイレクト・パス・インサート)

Page 97: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 97

バルク・ロードのオンライン統計収集に関する注意

以下の条件の表はオンライン統計収集が行われない

– SysのようなOracle所有のスキーマ

– ネステッド表

– 索引構成表(IOT)

– 外部表

– グローバル一時表(トランザクション固有一時表)

– バーチャル列を持つ表

– 表プリファレンスのPUBLISHがFALSEにセットされた表

– 表プリファレンスのINCREMENTALがTRUEにセットされたパーティション表に、パーティションを指定せずにバルク・ロードを実施した場合

収集されない: INSERT INTO salses SELECT …

収集される: INSERT INTO sales PARTITION (sales_q4_2000) SELECT …

Page 98: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 98

セッション固有一時表の統計収集

以前のリリースでは全てのセッションで一つの統計情報を共有して使用

12cではそれぞれのセッションで異なる統計情報を保持(デフォルト)

– そのセッションで使用するデータに合わせた統計を収集可能

11g

セッション固有一時表

セッション 1 セッション 2

統計情報 1 統計情報 1 データ 1 データ 2

同一の統計情報を使用

12c

セッション固有一時表

セッション 1 セッション 2

統計情報 1 統計情報 2 データ 1 データ 2

セッション毎の統計情報を使用

Page 99: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 99

セッション固有一時表の統計収集

デフォルトはセッション固有の統計を収集

セッション固有の統計は他のセッションと共有されない

以前のリリース同様に一つの統計情報を全てのセッションで使用する設定も可能

– GLOBAL_TEMP_TABLE_STATS プリファレンスで設定

GLOBAL_TEMP_TABLE_STATSの値 有効化の設定

SESSION セッション毎の統計情報を保持(デフォルト)

SHARED セッション間で統計情報を共有

DBMS_STATS.SET_GLOBAL_PREFS('GLOBAL_TEMP_TABLE_STATS', 'SHARED');

設定値

Page 100: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 100

統計情報に関する新機能

動的統計

バルク・ロードのオンライン統計収集

グローバル一時表のセッション固有統計

その他の統計情報に関する新機能

– SQL計画ディレクティブ

– ヒストグラムの強化

– 同時統計収集

Page 101: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 101

Temporary UNDO

Page 102: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 102

Temporary UNDO

一時表へのUNDOを一時表領域で管理

UNDO表領域のUNDO量の削減

– Retention期間をよりリアルに

生成されるREDOの削減

Active Data Guard環境で一時表へのDMLが可能

ALTER SYSTEM/SESSION SET TEMP_UNDO_ENABLED=true|false

– True に設定にすることで有効

– デフォルト:False

Page 103: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 103

データ配置最適化 (移動・圧縮の自動化)

Page 104: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 104

Automatic Data Optimization とは

Automatic Data Optimization(以下ADO) では、ILM処理(移動・圧縮)と起動条件をポリシーとして定義し、ILM処理を自動実行

– 移動は表領域の利用率に応じて実施

– 圧縮はアクセスパターンの変化に応じて実施

– 実施条件は上記のデフォルトの記述方法に加え、PL/SQLファンクションを使ったカスタム条件の利用も可能

Heat Map機能では、データへのアクセスパターンとそのアクセスが最後に発生した日時を記録

– ADOポリシーが起動タイミングを自動検知するために利用

概要

Page 105: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 105

Automatic Data Optimization とは 動作の仕組み

データへのアクセス

HEAT_MAP = ON

V$HEAT_MAP_SEGMENT

圧縮ポリシーの作成

移動ポリシーの作成

DBA_HEAT_MAP_SEGMENTS

HEAT_MAP_STAT$ 表

ディクショナリー

初期化パラメータ

ILM処理の登録

DBA

DB サーバー

一般ユーザー

SGA

ポリシー

評価・実行

MMON

メンテナンスWindow

1

Real Time

アクセス統計の収集

2

3

4

ストレージ 高性能 高性能 低コスト アーカイブ

圧縮 なし OLTP圧縮 HCC圧縮

:クエリー

HCC圧縮

:アーカイブ

最終ステージ ステージ③ ステージ② ステージ① ステージ⓪

Page 106: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 106

Automatic Data Optimizationポリシーの作成 ADO圧縮ポリシーの作成

ALTER TABLE sales ILM ADD POLICY

ROW STORE COMPRESS ADVANCED

ROW AFTER 3 DAYS OF NO MODIFICATION;

圧縮タイプ

実行レベル 起動タイミング アクセスパターン

圧縮タイプ

•圧縮タイプの指定

実行レベル

•処理対象

起動タイミング

• 指定された「アクセスパターン」となってからの時間

n DAY[s]

n MONTH[s]

n YEAR[s]

アクセスパターン

•アクセスの状態 NO MODIFICATION

(Insert/Updata/Delete が無い)

NO ACCESS

(Insert/Update/Delete/Select が無い)

CREATION(セグメントの作成)

Page 107: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 107

Automatic Data Optimizationポリシーの作成 ADO移動ポリシーの作成

ALTER TABLE sales ILM ADD POLICY

TIER TO Low_Cost_tbs;

移動タイプ 移動先

移動タイプ

• TIER TO のみ

移動先

•表領域を指定

Page 108: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 108

Oracle Database 12cの魅力全開中

Page 109: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 109

“Oracle Database 12cの魅力”を国内主要ベンダーのエキスパートが語る オラクルデータベースインサイダー( https://blogs.oracle.com/dbjp/ )から公開中

Page 110: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 110

Oracle Database 12cを触ってみた。 エンタープライズジン連載

Page 111: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 111

http://www.oracle.com/webfolder/technetwork/jp/content/otn_12c_cp/index.html

ORACLE 12c キャンペーン

Oracle Database 12c トライアル キャンペーン

応募要項

日本語マニュアルが OTN から公開されました

Page 112: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 112

まとめ

Page 113: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 113

セキュリティとコンプライアンス

ビッグ・データ

統合

データの最適化

アプリケーション開発

高可用性

インメモリ

パフォーマンスとスケーラビリティ

データウェアハウス

クラウドへのプラグイン

詳細は 続編にご期待ください

Page 114: 90分でつかむ Oracle Database 12 c 新機能 · 90分でつかむ Oracle Database 12c 新機能 日本オラクル株式会社 データベース事業統括 ソリューション本部

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 114