Oracle Cluster File Systemのバイナリおよびドキュメントは、次のURLからダウンロードできます。
http://otn.oracle.co.jp/software/tech/linux/ocfs/index.html
クラスタ・ファイル・システムは、クラスタ内のサーバー間におけるファイル・システム・イメージの 一貫性を実現します。これにより、管理者は、Oracleのデータベース・ファイル(データファイル、制 御ファイル、アーカイブ・ログなど)と構成ファイルでファイル・システムの機能を利用できます。
Oracle Cluster File SystemはOracle Technology Network Japanよりダウンロード可能なRPM形式で提供さ れるバイナリのみをサポート・サービスの対象といたします。ソースコードのダウンロードは可能と なっておりますが、ソースコード自身またはソースコードをお客様自身でコンパイルしてご利用される 場合は、サポート・サービスの提供はいたしません。
PL/SQL のネイティブ・コンパイル のネイティブ・コンパイル のネイティブ・コンパイル のネイティブ・コンパイル
この項では、PL/SQL文のCコードへのネイティブ・コンパイルを設定および構成する際に役立つ追加 情報について説明します。
PL/SQLのネイティブ・コンパイルを初めてご使用になる場合は、本番環境に移行する前にテスト・
データベースを構成する必要があります。
PL/SQLのネイティブ・コンパイル用にデータベースを構成する前に、データベースをバックアップし
てください。
PL/SQL のネイティブ・コンパイルを使用するかどうかの決定 のネイティブ・コンパイルを使用するかどうかの決定 のネイティブ・コンパイルを使用するかどうかの決定 のネイティブ・コンパイルを使用するかどうかの決定
まず最初に、PL/SQLのネイティブ・コンパイルを有効化することで、パフォーマンス上のメリットを 得られるかどうかを判断する必要があります。
各プログラム・ユニットの場合、解析済のPL/SQLがマシンが読取り可能なマシン・コードにコンパイ ルされます。それらはデータベースに格納されて実行時に解析されます。
PL/SQLのネイティブ・コンパイルを使用するPL/SQL文の場合は、Oracle9iがPL/SQL文を受け取り、
対応するCコードを生成します。次に、Oracle9iによってmakefileの
$ORACLE_HOME/plsql/spnc_makefile.mkと、サポートされているオペレーティング・システムの Cコンパイラ、リンカーおよびmakeユーティリティが使用され、生成されたCコードが共有ライブラ リにコンパイルおよびリンクされます。このライブラリはデータベースの外部に格納され、該当する
PL/SQL文が実行時にコールされるたびにロードおよび実行されます。OFAの推奨事項に従って、共有
ライブラリはデータファイルの近くに配置してください。
Cコードの実行速度はPL/SQLよりも高速ですが、マシン・コードよりもコンパイルに時間がかかりま す。
PL/SQLのネイティブ・コンパイルを使用することでパフォーマンス上のメリットを一番享受するのは、
計算集中型の処理です。このような処理の例には、データ・ウェアハウス・アプリケーションや、表示 用のデータ変換をサーバー側で大量に行うアプリケーションなどがあります。これらのアプリケーショ ンでは、処理速度が最大30%向上します。
SQL文のみをコールし、多くの手続き型ロジックを実装しないPL/SQLプログラム・ユニットの場合 は、ネイティブ・コンパイルによるパフォーマンス・メリットは大きくありません。ただし、ネイティ ブ・コンパイルされたPL/SQLの実行速度が、実行時に解析される同一コードよりも遅くなることはあ りません。
PL/SQLのネイティブ・コンパイルによってデータベース操作のパフォーマンスを改善できそうな場合
は、データベース全体をNATIVEとしてコンパイルする必要があります。
PL/SQL のネイティブ・コンパイルの必須パラメータ のネイティブ・コンパイルの必須パラメータ のネイティブ・コンパイルの必須パラメータ のネイティブ・コンパイルの必須パラメータ
データベースをNATIVEとしてコンパイルするか、個々のPL/SQLユニットをセッション・レベルでコ ンパイルするかどうかに関係なく、必須パラメータはすべて設定する必要があります。
製品の問題
システム・パラメータ システム・パラメータ システム・パラメータ
システム・パラメータ: 次の表に、PL/SQL のネイティブ・コンパイルで必須の初期化パラメータを示 します。これらのパラメータはシステム・レベルでのみ設定できます。
セッション・レベルの初期化パラメータ セッション・レベルの初期化パラメータ セッション・レベルの初期化パラメータ
セッション・レベルの初期化パラメータ: パラメータ PLSQL_COMPILER_FLAGSは、PL/SQLコード に対してネイティブ・コンパイルと解析のどちらを適用するか、およびデバッグ情報を含めるかどうか を指定します。デフォルトの設定は、INTERPRETED,NON_DEBUGです。PL/SQLのネイティブ・コンパ イルを有効にする場合は、PLSQL_COMPILER_FLAGSの値をNATIVEに設定する必要があります。
データベース全体をNATIVEとしてコンパイルする場合は、PLSQL_COMPILER_FLAGSをシステム・
レベルで設定する必要があります。
このパラメータを設定するには、次の構文を使用します。
SQL> alter dynamic set plsql_compiler_flags='FLAG_A, FLAG_B' 注意
注意 注意
注意: この項で説明するPL/SQLのネイティブ・コンパイルでのシステ ム・パラメータの設定例では、システムでサーバー・パラメータ・ファイ ル(SPFILE)が使用されていることを前提にしています。
テキストの初期化パラメータ・ファイル(PFILEまたはinitsid.ora) を使用する場合は、次の表の説明に従って、初期化パラメータ・ファイル 内の各パラメータを変更してください。
パラメータ パラメータ パラメータ
パラメータ 特性特性特性特性
PLSQL_NATIVE_MAKE_UTILITY オペレーティング・システム上のmake
ユーティリティへのフルパス。Linux Intel
(32-bit)では、/usr/ccs/bin/make。
PLSQL_NATIVE_MAKE_FILE_NAME ネイティブ・コンパイルされたPL/SQL
コードを格納する共有ライブラリの作成に
使用するmakefileへのフルパス。
PLSQL_NATIVE_LIBRARY_DIR ネイティブ・コンパイルされたPL/SQL
コードを格納する共有ライブラリの格納先 のフルパスおよびディレクトリ名。
共有ライブラリ・ディレクトリは、Optimal Flexible Architecture(OFA)のルールに準拠 して、データファイルの格納先のサブディ レクトリとして作成する。
セキュリティ上の理由から、このディレク トリへの書込み権限は、oracleユーザー とrootユーザーにのみ付与する。
PLSQL_NATIVE_LIBRARY_SUBDIR_
COUNT パラメータPLSQL_NATIVE_LIBRARY_DIR
で指定されているディレクトリ内のサブ ディレクトリの数。
オプション。ネイティブ・コンパイルされ たCプログラム・ユニットの数が15000を 超える場合に使用する。このオプションの 設定が必要な場合は、「PL/SQLネイティ ブ・ライブラリ用のサブディレクトリの設 定」の項を参照。
PLSQL_NATIVE_C_COMPILER このパラメータは設定不可。
PLSQL_NATIVE_LINKER このパラメータは設定不可。
製品の問題
この構文の意味は次のとおりです。
■ 変数dynamicは、セッションまたはシステムのいずれかを表します。
■ 変数FLAG_Aは、選択可能なコードの処理方法を表します。
変数FLAG_Aに指定できる値は次のとおりです。
– INTERPRETED: 解析モードでコンパイルします。
– NATIVE: ネイティブ・モードでコンパイルします。
■ 変数FLAG_Bは、選択可能なデバッグ・オプションを表します。このリリースでは、
NATIVE,DEBUGは選択できません。
変数FLAG_Bに指定できる値は次のとおりです。
– DEBUG: プローブ・デバッグ記号を使用して、PL/SQLモジュールがコンパイルされます。
– NON_DEBUG: プローブ・デバッグ記号を使用せずに、PL/SQLモジュールがコンパイルされま す。
PL/SQL のネイティブ・コンパイル用のデータベースの設定 のネイティブ・コンパイル用のデータベースの設定 のネイティブ・コンパイル用のデータベースの設定 のネイティブ・コンパイル用のデータベースの設定
PL/SQLのネイティブ・コンパイル用のデータベースを設定するには、この項の手順に従います。
PL/SQLのネイティブ・コンパイル用の新規データベースの作成のネイティブ・コンパイル用の新規データベースの作成のネイティブ・コンパイル用の新規データベースの作成のネイティブ・コンパイル用の新規データベースの作成: Database Configuration Assistantを使 用する場合は、その機能を使用して、PL/SQLのネイティブ・コンパイルで必須の初期化パラメータを 設定します。これらのパラメータは、前述の「PL/SQLのネイティブ・コンパイル」の項で説明されて います。
『Oracle9i for UNIX Systemsインストレーション・ガイド』の表2-2「プリコンパイラとツールの制限事
項と要件」を参照して、Linux Intel(32-bit)オペレーティング・システムでサポートされているCコン パイラを調べ、そのCコンパイラのシステムにおける格納先をシステム管理者に問い合せてください。
インストール時に、そのCコンパイラへのパスを指定する必要があります。
PL/SQLのネイティブ・コンパイルで使用するmakefileのspnc_makefile.mkには、Linux Intel
(32-bit)オペレーティング・システム上のリンク・エディタ・ユーティリティへのパスが事前に記述さ れています。
初期化パラメータPLSQL_NATIVE_DIR_SUBDIR_COUNTの設定が必要かどうかを判断し、必要に応じ
て、PL/SQLネイティブ・ライブラリを格納するサブディレクトリを作成します。
デフォルトでは、PL/SQLプログラム・ユニットは1つのディレクトリ内に配置されます。ただし、プ ログラム・ユニットの数が15000を超える場合は、オペレーティング・システムによってパフォーマン ス上の制限が課されます。この問題を回避するには、PL/SQLプログラム・ユニットを複数のサブディ レクトリに格納します。
テスト・データベースを設定する場合は、次のSQL問合せを使用して、使用するPL/SQLプログラム・
ユニット数を求めます。
select count (*) from DBA_OBJECTS where object_type in (
select distinct object_type from dba_stored_settings where object_type not like '%BODY%' );
この問合せによって返されたアプリケーション・オブジェクトのカウントが15000を超える場合は、
「PL/SQLネイティブ・ライブラリ用のサブディレクトリの設定」の項に説明されている手順を実行しま
す。
PL/SQLのネイティブ・コンパイル用の既存データベースの変更のネイティブ・コンパイル用の既存データベースの変更のネイティブ・コンパイル用の既存データベースの変更のネイティブ・コンパイル用の既存データベースの変更: 既存のOracle9iデータベースをネイ ティブにコンパイルする手順は次のとおりです。
1. 次のWebサイトからスクリプトをダウンロードして、その手順に従います。
http://otn.oracle.com//tech/pl_sql/htdocs/README_2188517.htm