ヘッダーをスキップ
Oracle Databaseアドバンスト・アプリケーション開発者ガイド
11gリリース1(11.1)
E05687-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

アプリケーション開発のための新機能

ここでは、このマニュアルで扱うOracle Databaseの新機能を簡単に説明し、詳細情報へのリンクを示します。

Oracle Database 11gリリース1(11.1)の新機能

リリース11.1の新しいアプリケーション開発機能は、次のとおりです。

データ定義言語(DDL)文のWAITオプション

DDL文では内部構造に対する排他ロックを必要とします。DDL文の発行時にこれらのロックが使用できない場合、そのDDL文は失敗します。ただし、発行がサブセカンド後であれば成功していた可能性があります。SQL文LOCK TABLEWAITオプションによって、DDL文は指定された期間ロックを待機して、失敗を避けることができます。

詳細は、「ロック方法の選択」を参照してください。

Oracle XML DatabaseのバイナリXMLのサポート

バイナリXMLは、XML文書を表す第3の方法です。バイナリXMLは、既存のオブジェクト・リレーショナル記憶域およびCLOB記憶域表現を置換するのではなく補足します。バイナリXMLには2つの重要なメリットがあります。

他の記憶域メカニズムと同様、バイナリXML記憶域の詳細は透過的です。継続してXMLTypeおよびその関連メソッドおよび演算子を使用します。

詳細は、「XMLの表現」を参照してください。


関連項目:

『Oracle XML DB開発者ガイド』

SQL組込み関数のメタデータ

SQL組込み関数のメタデータは、動的パフォーマンス(V$)ビューを介してアクセス可能です。サード・パーティのツールは、アプリケーション・レイヤーのメタデータをメンテナンスすることなく組込みSQLファンクションを活用できます。

詳細は、「SQL組込み関数のメタデータ」を参照してください。

正規表現組込み関数への拡張機能

正規表現組込み関数REGEXP_INSTRおよびREGEXP_SUBSTRでは、機能が強化されています。新しい正規表現組込み関数REGEXP_COUNTでは、文字列にパターンが出現する回数が戻されます。このファンクションはSQLおよびPL/SQLでの場合と同じ働きをします。

詳細は、「Oracle Databaseの正規表現の実装」を参照してください。


関連項目:

『Oracle Database SQL言語リファレンス』

非表示の索引

非表示の索引は、すべてのデータ操作言語(DML)文でOracle Databaseによってメンテナンスされますが、セッションまたはシステム・レベルで明示的にパラメータOPTIMIZER_USE_INVISIBLE_INDEXESTRUEに設定しないかぎりは、オプティマイザによって無視されます。

索引を非表示にするのは、使用禁止または削除の代替手段です。非表示の索引を使用すると、次のことができます。

詳細は、「未使用索引の削除」を参照してください。

PL/SQLファンクション結果キャッシュ

リリース11.1より前は、PL/SQLアプリケーションにファンクションの結果をキャッシュさせた場合、キャッシュおよびキャッシュ管理のサブプログラムを設計およびコーディングする必要がありました。複数セッションでアプリケーションを実行する場合、各セッションではそのキャッシュおよびキャッシュ管理のサブプログラム・コピーが必要でした。各セッションで同じ高価な演算を実行する必要がある場合もありました。

リリース11.1から、PL/SQLはファンクション結果キャッシュを提供します。ファンクション結果キャッシュは共有グローバル領域(SGA)に格納されるため、アプリケーションが実行されるすべてのセッションで使用可能です。

詳細は、「PL/SQLファンクション結果キャッシュ」を参照してください。


関連項目:

『Oracle Database PL/SQL言語リファレンス』

PL/SQL式の順序

疑似列CURRVALおよびNEXTVALによって、PL/SQLソース・コードの記述が容易になり、実行時のパフォーマンスおよびスケーラビリティが向上します。NUMBER式が使用できる場所であればどこにでも、sequence_name.CURRVALおよびsequence_name.NEXTVALを使用できます。

例7-6を参照してください。


関連項目:

『Oracle Database PL/SQL言語リファレンス』

PL/Scope

PL/Scopeはコンパイラ駆動方式のツールであり、PL/SQLソース・コードからユーザー定義の識別子に関するデータを収集して構成します。PL/Scopeはコンパイラ駆動方式のツールであるため、直接使用するのではなく、対話型の開発環境(SQL DeveloperやJDeveloperなど)を介して使用します。

PL/Scopeによって、強力で効率的なPL/Scopeソース・コード・ブラウザの開発が可能になります。このブラウザは、ソース・コードの参照および理解に費やされる時間を最小限にすることによって、PL/SQL開発者の生産性を向上させます。

PL/Scopeの詳細は、第8章「PL/Scopeの使用」を参照してください。

PL/SQL階層プロファイラ

非階層(フラット)プロファイラにより、プログラムによって各サブプログラム内で費やされた時間(サブプログラムの関数時間または自己時間)が記録されます。関数時間は役に立ちますが、たいていこれでは十分ではありません。たとえば、サブプログラムINSERT_ORDERでプログラム全体の40%が費やされたことがわかれば参考になりますが、INSERT_ORDERを頻繁にコールするプログラムや、INSERT_ORDERの下(子サブプログラムを含む)で費やされた合計時間がわかればさらに便利です。階層プロファイラは、このような情報を提供します。

PL/SQL階層プロファイラには、次の機能があります。

動的実行プロファイルのサブプログラムレベルの各サマリーには、次のような情報が含まれます。

生成されたHTMLレポートは任意のブラウザで参照できます。ブラウザのナビゲーション機能と厳選したリンクを組み合せた効率的な手段により、大規模なアプリケーションのパフォーマンスを分析し、アプリケーションのパフォーマンスを向上させ、開発コストを削減できます。

PL/SQL階層プロファイラの詳細は、第9章「PL/SQL階層プロファイラの使用」を参照してください。

問合せ結果変更通知

リリース11.1より前は、連続問合せ通知(CQN)によってオブジェクト変更通知のみが発行されていました。これは、登録済の問合せに関連付けられたオブジェクトのDML変更またはDDL変更の結果でした。

リリース11.1では、CQNは問合せ結果変更通知も発行できます。これは、登録済の問合せに関連付けられた結果セットのDML変更またはDDL変更の結果です。新しい静的データ・ディクショナリ・ビューでは、結果セット変更通知に対してどの問合せが登録されているかを確認できます(「CQN登録の問合せ」を参照)。

詳細は、第12章「連続問合せ通知の使用」を参照してください。

フラッシュバック・トランザクション

DBMS_FLASHBACK.TRANSACTION_BACKOUTプロシージャでは、データベースがオンラインである間にトランザクションおよびその依存トランザクションをロールバックします。このリカバリ操作では、UNDOデータを使用して補正トランザクションを作成および実行します。このトランザクションによって影響のあったデータが元の状態に戻ります。

詳細は、「フラッシュバック・トランザクションの使用」を参照してください。

フラッシュバック・データ・アーカイブ(Oracle Total Recall)

フラッシュバック・データ・アーカイブにより、その存続期間中、記録に対するすべてのトランザクションによる変更を格納および追跡できます。今後、アプリケーションにこのインテリジェンスを組み込む必要はありません。フラッシュバック・データ・アーカイブは、レコード・ステージ・ポリシーと監査レポートのコンプライアンスに役立ちます。

詳細は、「フラッシュバック・データ・アーカイブの使用(Oracle Total Recall)」を参照してください。

PL/SQL内で使用可能なXA API

XAインタフェース機能は、データベースやキューなど複数のリソース管理に関するトランザクションをサポートし、現在はPL/SQL内で使用できます。PL/SQLを使用して、SQL*Plusセッション間およびプロセス間のトランザクションを切替えおよび共有できます。

詳細は、「DBMS_XAパッケージの使用」を参照してください。

Oracle Real Application Clusters(Oracle RAC)でのXAまたはJTAのサポート

現在、XAトランザクションはデフォルトで複数のOracle RACインスタンスにまたがっており、XAを使用するすべてのアプリケーションはOracle RAC環境を最大限に活用でき、アプリケーションの可用性およびスケーラビリティを拡張します。

詳細は、「Oracle Real Application Clusters(Oracle RAC)でのOracle XAの使用」を参照してください。

識別コード・パッケージ

識別コード・パッケージは、Oracle Databaseの電子製品コード(EPC)など各種製品コードや識別コード間の格納、取得、エンコード、デコード、および変換を行うツールを提供します。また、新しいデータ型、メタデータ表およびビュー、およびEPC標準RFIDタグまたは新型RFIDタグをユーザー表に格納するためのPL/SQLパッケージも提供します。

識別コード・パッケージによって、Oracle Databaseは、EPCコード体系の認識、効率的な記憶域およびコンポーネント・レベルのEPCデータの取得、EPCglobal Tag Data Translation 1.0(TDT)標準に準拠することが可能になります。TDT標準は、各種EPC RFIDタグ表現間のデコード、エンコード、および変換の方法について定義したものです。

識別コード・パッケージでは、拡張可能なフレームワークも提供しており、EPC標準に含まれないアプリケーションで既存のコード体系を使用でき、Oracle Databaseを古いシステムと将来のEPC標準の一部になる可能性のある進化する識別コードの両方に対応させることができます。

また、識別コード・パッケージでは、最初に新しいエンコード・カテゴリを登録して新しいエンコード・タイプを登録し、次に新しいエンコード・タイプに関連付けられた新しいコンポーネントを登録して、独自の識別コードを作成できます。

詳細は、第17章「識別コード・パッケージの使用」を参照してください。

オンライン索引作成および再構築の機能拡張

オンライン索引作成および再構築では、今後DMLブロッキング・ロックを必要としません。

リリース11.1より前は、オンライン索引作成および再構築では、再構築の終了時に非常に短期のDMLブロッキング・ロックが必要でした。DMLブロッキング・ロックは、待機中のDML操作の数の急上昇の原因となる可能性があったため、システム使用の一時的な遮断と急激な増加が発生しました。システムの使用状況の異常性によって、オペレーティング・システムのアラーム・レベルがトリガーされる可能性がありました。

埋込みPL/SQLゲートウェイ

PL/SQLゲートウェイを使用すると、HTTPリクエストから導出されたパラメータのあるURLに応答して、ユーザーが作成したPL/SQLサブプログラムを起動できます。mod_plsqlは、Oracle HTTP Serverへのプラグインとして存在するゲートウェイの形式です。現在はPL/SQLゲートウェイも、データベース自体に埋め込まれています。埋込みPL/SQLゲートウェイは内部のOracle XML Database Listenerを使用し、Oracle HTTP Serverに依存していません。DBMS_EPGパッケージを使用して、ゲートウェイの埋込みバージョンを構成します。

詳細は、「埋込みPL/SQLゲートウェイの使用」を参照してください。

デフォルトでマルチスレッド・エージェントextprocを直接起動するOracle Database

アプリケーションが外部Cプロシージャをコールすると、Oracle DatabaseまたはOracle Listenerが外部プロシージャ・エージェントextprocを起動します。

リリース11.1より前は、Oracle Listenerによってマルチスレッド・エージェントextprocが起動され、ユーザーがlistener.oraファイルにextprocの環境変数を定義していました。

リリース11.1では、Oracle Databaseによってデフォルトでextprocが直接起動され、Oracle Listenerが誤ってextprocを起動する危険性が解消されています。セキュリティを最大限にするため、このデフォルト構成をお薦めします。使用する場合は、extproc.oraファイルにextprocの環境変数を定義します。

デフォルト構成を使用できない状況も含め、詳細は、「外部プロシージャのロード」を参照してください。