連載
» 2013年08月09日 18時00分 公開

ユーザー目線でチェック! Oracle Database 12cの知りたいところ(1):「新機能」「廃止機能」「サポート状況」から見たユーザーにとってのOracle Database 12c (2/3)

[渡部亮太,株式会社コーソル]

ユーザーにとってのOracle Database 12c R1

 Oracle Databaseに限らず、ソフトウェアの新バージョンのリリースとなると、新機能に目を奪われがちです。しかし、Oracle Databaseは既にエンタープライズITシステムの基盤として浸透しているインフラのような存在であるため、新機能と新機能がもたらす利点以外にも考えなければならない点はいくつかあります。

 このような視点を含め、ユーザーにとって、Oracle Databaseの新バージョンはどのようなインパクトや観点があるのかを整理しつつ、いくつかの新機能について紹介します。

積極的な活用が期待される新機能

 既に言及した通り、Oracle Database 12c R1は多くの新機能が追加されています。これらの新機能を積極的に活用することにより、これまでできなかったことが簡単にできるようになります。その半面、新機能の利点を享受するためには、新機能に併せた既存のプログラム修正や、新しいプログラミング方法の導入、新しいオブジェクト定義、データベース構成、システム構成への対応が必要となる場合があります。

 新機能の導入にコストが必要となる場合は、新機能の導入により得られる利点と、必要なコストを天秤にかけて、新機能を使用するかどうかを判断する必要があるでしょう。

 主要な新機能については先の章で説明していますが、Oracle Database 12c R1にはこれ以外の非常に多くの新機能があります。いくつかの機能について紹介します。

Temporal Validity テーブル内のデータに有効時間という概念を導入します。テーブルに有効時間を示す列("PERIOD FOR"句で指定)を定義でき、列の値とSQLを実行した日時に応じて、該当するデータのみを返します。

Application Continuity データベースにおける処理の途中で障害が発生した場合でも処理を継続できる仕組み。従来機能のTAFでは参照処理のみが処理継続可能でしたが、Application Continuityでは更新処理でも処理の継続が可能になりました。Application Continuityに対応したデータソース設定が必要です。

Flashback Data Archiveの強化 過去の履歴データを保持する機能であるFlashback Data Archiveが強化され、単に過去のデータを参照できるだけでなく、データを操作したユーザーやSQLなど監査目的に活用可能な情報を併せて収集できるようになっています。

オンラインでのデータファイル移動 データファイルをオフラインにすることなく、オンライン状態のままデータファイルを移動できます。

オンライン実行可能なDDLの強化 索引の削除、制約の削除、列への未使用マーク不可などのDDL操作をオンライン実行できるようになりました。これらのDDLの実行により、更新処理を妨げることがなくなりました。


データベース基本機能の強化

 データベースシステムという位置づけから、Oracle Databaseはデータ管理やSQL、トランザクションの実行という基本機能を提供します。これらの基本機能については、過去のバージョンアップでも随時機能の強化が図られており、Oracle Database 12c R1でも以下の点で機能が強化されています。

Adaptive Query Optimization SQLの実行中に実行計画の作成ミスに気付いた場合、その時点で別の実行計画に切り替えます。また、実行計画の作成ミスによる非効率な実行が発生した場合、その情報を記録しておき、2回目以降の実行計画作成の際の参考にして、より適切な実行計画が作成できるようにします。

Adaptive SQL Plan Management 実行計画管理を使用している状況で、より効率的な実行計画が確認できた場合、自動的にその実行計画を使用します。従来のバージョンでは、管理者による「承認」操作が必要でした。

Online Statistics Gathering for Bulk Loads CREATE TABLE AS SELECT、INSERT INTO 〜 SELECTなどのバルクロード処理の実行中に、オプティマイザ統計を収集します。従来はバルクロード処理の実行後に、明示的にオプティマイザ統計を収集する必要がありました。

Concurrent Statistics Gathering 複数のオブジェクトについて、パラレルにオプティマイザ統計を収集します。従来は使用し切れていなかったCPUやI/Oリソースを効果的に使用でき、オプティマイザ統計の収集時間を短縮できます。


 これらの新機能を活用するために、基本的にユーザーの考慮は必要ではありません。しかし、動作が変更されることにより少なからず副作用や、利用上の留意点が従来のバージョンとは違ってきます。ユーザーの立場であっても、機能の概要と存在を意識することが望まれると考えます。

別製品からの移行を容易に

 SQLはANSIで標準化されているとはいえ、DDLを中心に多くの部分で製品固有の点が残り、完全な互換性にはほど遠い状況にあります。

 Oracle Databaseを中心にしたデータベース統合を進めるにあたり、他製品を想定して作成されたアプリケーションをOracle Databaseでも修正なしで、または、最低限の修正で動作させられることが有効です。以下の点でOracle DatabaseのSQL文法が強化、拡張され、他製品のSQLがそのままOracle Databaseでも実行できる状況が増えました。

Default Values for Columns Based on Oracle Sequences 列定義におけるDEFAULT句が強化され、デフォルト値に自動生成される連番を使用できるようになりました。従来、連番を付与するためにはシーケンスオブジェクトの操作(CURVAL、NEXTVAL)が必要でしたが、これが不要になり、単にINSERT文を実行するだけで自動的に連番を付与できます。

IDENTITY Columns Default Values for Columns Based on Oracle Sequencesと類似した機能ですが、ANSI標準のIDENTITYに対応しました。連番を自動付与できます。

Increased Size Limit for VARCHAR2、NVARCHAR2、RAW Data Types 初期化パラメータ「MAX_STRING_SIZE = EXTENDED」を指定することで、データ型の最大データサイズを拡張できます。従来は、VARCHAR2、NVARCHAR2が最大4000バイト、RAWデータ型は最大2000バイトという制限がありましたが、32767バイトに拡張されます。データサイズの拡張は、LOBで実現されます。

Native SQL Support for Query Row Limits and Row Offsets 結果セットから特定の行数のみを取得するSQL構文としてANSI SQL標準に準拠する書き方が可能になりました。従来はrownum疑似列を用いて結果セットをフィルタしていました。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。