初期化パラメータ

データベースをプロビジョニングすると、Autonomous Databaseによってデータベース初期化パラメータが自動的に構成されます。サービスの使用を開始するために初期化パラメータを設定する必要はありません。ただし、必要に応じて一部のパラメータを変更できます。

変更可能な初期化パラメータ

次の表に、ALTER SESSIONでのみ変更可能な初期化パラメータを示します。

ALTER SESSIONでのみ変更可能 ノート
CONSTRAINTS  
CONTAINER  
CURRENT_SCHEMA  
CURSOR_INVALIDATION  
DEFAULT_COLLATION  
DEFAULT_CREDENTIAL  
EDITION  
ISOLATION_LEVEL  
JSON_BEHAVIOR

このパラメータはOracle Database 23aiにのみ適用されます。詳細は、JSON_BEHAVIORを参照してください。

READ_ONLY  
SQL_TRACE

詳細は、Autonomous DatabaseでのSQLトレースの実行を参照してください

SQL_TRANSLATION_PROFILE  
SQL_TRANSPILER

このパラメータはOracle Database 23aiにのみ適用されます。詳細は、SQL_TRANSPILERを参照してください。

STATISTICS_LEVEL  
TIME_ZONE

TIME_ZONEの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

XML_PARAMS

このパラメータはOracle Database 23aiにのみ適用されます。詳細は、XML_PARAMSを参照してください。

次の表に、ALTER SYSTEMでのみ変更可能な初期化パラメータを示します。

ALTER SYSTEMでのみ変更可能 ノート
BLANK_TRIMMING  
FIXED_DATE  
JOB_QUEUE_PROCESSES  
LOCKDOWN_ERRORS

詳細は、LOCKDOWN_ERRORSを参照してください

MAX_IDLE_BLOCKER_TIME

値が5より大きい場合、パラメータは5に設定されたかのように動作します。

MAX_IDLE_TIME  
SESSION_EXIT_ON_PACKAGE_STATE_ERROR

SESSION_EXIT_ON_PACKAGE_STATE_ERRORを参照してください

次の表に、ALTER SESSIONまたはALTER SYSTEMで変更可能な初期化パラメータを示します。

ALTER SESSIONまたはALTER SYSTEMで変更可能です。 ノート
APPROX_FOR_AGGREGATION  
APPROX_FOR_COUNT_DISTINCT  
APPROX_FOR_PERCENTILE  
CLIENT_PREFETCH_ROWS

CLIENT_PREFETCH_ROWSを参照してください

CONTAINER_DATA  
CURSOR_SHARING  
DDL_LOCK_TIMEOUT  
GROUP_BY_POSITION_ENABLED

このパラメータはOracle Database 23aiにのみ適用されます。詳細は、GROUP_BY_POSITION_ENABLEDを参照してください

IGNORE_SESSION_SET_PARAM_ERRORS  
LDAP_DIRECTORY_ACCESS  
LOAD_WITHOUT_COMPILE  
MAX_STRING_SIZE

詳細は、データ型を参照してください

NLS_CALENDAR  
NLS_COMP  
NLS_CURRENCY  
NLS_DATE_FORMAT  
NLS_DATE_LANGUAGE  
NLS_DUAL_CURRENCY  
NLS_ISO_CURRENCY  
NLS_LANGUAGE  
NLS_LENGTH_SEMANTICS  
NLS_NCHAR_CONV_EXCP  
NLS_NUMERIC_CHARACTERS  
NLS_SORT  
NLS_TERRITORY  
NLS_TIME_FORMAT  
NLS_TIME_TZ_FORMAT  
NLS_TIMESTAMP_FORMAT  
NLS_TIMESTAMP_TZ_FORMAT  
OPTIMIZER_CAPTURE_SQL_QUARANTINE  
OPTIMIZER_IGNORE_HINTS

OPTIMIZER_IGNORE_HINTSの詳細は、Autonomous Databaseでのオプティマイザ統計の管理を参照してください。

OPTIMIZER_IGNORE_PARALLEL_HINTS

OPTIMIZER_IGNORE_PARALLEL_HINTSの詳細は、Autonomous Databaseでのオプティマイザ統計の管理を参照してください。

OPTIMIZER_MODE  
OPTIMIZER_REAL_TIME_STATISTICS  
OPTIMIZER_USE_SQL_QUARANTINE  
PLSCOPE_SETTINGS  
PLSQL_CCFLAGS  
PLSQL_DEBUG  
PLSQL_OPTIMIZE_LEVEL  
PLSQL_WARNINGS  
QUERY_REWRITE_INTEGRITY  
RECYCLE_BIN  
REMOTE_DEPENDENCIES_MODE  
RESULT_CACHE_INTEGRITY

RESULT_CACHE_INTEGRITYを参照してください

RESULT_CACHE_MODE

RESULT_CACHE_MODEを参照してください

SKIP_UNUSABLE_INEDEXES  
SYSDATE_AT_DBTIMEZONE

SYSDATE_AT_DBTIMEZONE Autonomous DatabaseでのSYSDATEのタイム・ゾーンの選択を参照してください

初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。

SESSION_EXIT_ON_PACKAGE_STATE_ERROR

SESSION_EXIT_ON_PACKAGE_STATE_ERRORは、セッションで実行されているステートフルPL/SQLパッケージの特別な処理を有効または無効にします。

プロパティ 説明
パラメータ型 Boolean
デフォルトの値 FALSE
変更可能 ALTER SYSTEM
値の範囲 TRUE | FALSE

SESSION_EXIT_ON_PACKAGE_STATE_ERRORは、セッションで実行されているステートフルPL/SQLパッケージの処理を指定します。このようなパッケージが変更された場合(Oracle提供オブジェクトの計画メンテナンス中など)、パッケージのアクティブなインスタンス化があるセッションは、パッケージを実行しようとすると次のエラーを受け取ります:

ORA-4068 existing state of package has been discarded

ただし、ORA-4068エラーを受信するアプリケーション・コードでは、その再試行ロジックでこのエラーを処理できない場合があります。

SESSION_EXIT_ON_PACKAGE_STATE_ERRORTRUEに設定すると、このケースで異なる処理が行われます。SESSION_EXIT_ON_PACKAGE_STATE_ERRORTRUEの場合、パッケージ状態が破棄されると、ORA-4068エラーが発生するのみでなく、セッションもすぐに終了します。多くのアプリケーションが自動的かつ透過的に接続を再確立することによってセッションの終了を処理できるため、これは有益である可能性があります。

SYSDATE_AT_DBTIMEZONE Autonomous DatabaseでのSYSDATEのタイム・ゾーンの選択

SYSDATE_AT_DBTIMEZONEは、SYSDATEおよびSYSTIMESTAMPへのコールで返される日時値に対するセッションでの特別な処理を有効にします。

SYSDATE_AT_DBTIMEZONEの値に応じて、デフォルトのAutonomous Databaseタイム・ゾーン、協定世界時(UTC)、またはデータベースに設定したタイム・ゾーンに基づく日時が表示されます。

プロパティ 説明
パラメータ型 Boolean
デフォルトの値 FALSE
変更可能 ALTER SESSION, ALTER SYSTEM
値の範囲 TRUE | FALSE

デフォルトのAutonomous Databaseタイムゾーン

デフォルトのAutonomous Databaseタイム・ゾーンは、Coordinated Universal Time (UTC)であり、デフォルトではSYSDATEおよびSYSTIMESTAMPをコールすると、日付と時刻がUTCで返されます。

データベースのタイム・ゾーンを変更するには、次の文を実行します。この例では、データベースのタイム・ゾーンをUTC-5に設定しています。

ALTER DATABASE SET TIME_ZONE='-05:00';
ノート

変更を有効にするには、Autonomous Databaseインスタンスを再起動する必要があります。

データベースのタイム・ゾーンの設定後、デフォルトでは、SYSDATEおよびSYSTIMESTAMPは引き続きUTCで日時を返します(SYSDATE_AT_DBTIMEZONEはデフォルトでFALSEです)。セッションでSYSDATE_AT_DBTIMEZONETRUEに設定すると、SYSDATEおよびSYSTIMESTAMPはデータベースのタイム・ゾーンを返します。

ALTER DATABASESET TIME_ZONE句を使用する方法の詳細は、データベースのタイム・ゾーンの設定を参照してください。

セッションでのSYSDATE_AT_DBTIMEZONEの使用

セッションでSYSDATE_AT_DBTIMEZONEFALSEの場合、SYSDATEおよびSYSTIMESTAMPをコールすると、デフォルトのAutonomous Databaseタイム・ゾーンであるCoordinated Universal Time (UTC)に基づいて値が返されます。

セッションでSYSDATE_AT_DBTIMEZONETRUEの場合、SYSDATEまたはSYSTIMESTAMPをコールすると、データベースのタイム・ゾーンに基づいて日付と時刻が返されます。

ノート

SYSDATE_AT_DBTIMEZONETRUEに設定すると、アプリケーションSQLの演算子としてのSYSDATEおよびSYSTIMESTAMPの使用にのみ影響します(たとえば、問合せ、DMLおよびCTAS操作の場合)。このパラメータを使用する場合は、クライアント/セッションのタイムゾーンがデータベースのタイムゾーンと一致することをお薦めします。

次の例では、SYSDATE_AT_DBTIMEZONEパラメータ値に基づいて、2つの異なるタイム・ゾーンの日時が返されます:

SQL> SELECT DBTIMEZONE FROM DUAL;

DBTIMEZONE
_____________
-05:00

SQL> ALTER SESSION SET SYSDATE_AT_DBTIMEZONE=FALSE;

Session altered.

SQL> SELECT SYSTIMESTAMP FROM DUAL;

SYSTIMESTAMP
______________________________________
27-JAN-22 06.59.45.708082000 PM GMT

SQL> ALTER SESSION SET SYSDATE_AT_DBTIMEZONE=TRUE;

Session altered.

SQL> SELECT SYSTIMESTAMP FROM DUAL;

SYSTIMESTAMP
_________________________________________
27-JAN-22 02.14.47.578946000 PM -05:00 
ノート

データベース・アクションのSQLワークシートでSYSDATEまたはSYSTIMESTAMP問合せを実行すると、返される日時の値はUTCになります(SYSDATE_AT_DBTIMEZONEパラメータがTRUEまたはFALSEに設定されている場合)。データベース・アクションでの作業時にデータベースのタイム・ゾーンを取得するには、次のようにTO_CHAR()を使用します:

SQL> SELECT TO_CHAR(SYSTIMESTAMP,'YYYY-MM-DD"T"HH24:MI:SS TZH":"TZM') FROM DUAL;

TO_CHAR(SYSTIMESTAMP,'YYYY-MM-DD"T"HH24:MI:SSTZH":"TZM')
___________________________________________________________
2022-01-27T14:15:00 -05:00

CLIENT_PREFETCH_ROWS

CLIENT_PREFETCH_ROWSパラメータを設定して、クライアントが問合せ結果セットの行のフェッチ中に必要なラウンドトリップ数を削減できるようにします。

CLIENT_PREFETCH_ROWSは、クライアント・アプリケーションを変更せずに、Oracleクライアント・ドライバによってプリフェッチされる行数を指定します。クライアント・ドライバは、問合せの実行が成功するたび、データベースに送信される後続のフェッチ・リクエストごとに、プリフェッチされた行をバッファリングします。

このパラメータは、Oracle Call Interface (OCI)を使用してデータベースに接続するクライアントのみに適用されます。

このパラメータは、すべてのプラットフォームでOracle Instant Client/Oracle Database Client 19.17 (以上)および21.8 (以上)にのみ適用されます。

プロパティ 説明
パラメータ型 Integer
構文 CLIENT_PREFETCH_ROWS = integer
デフォルトの値 0 (クライアント側の設定のみが適用されます)
変更可能 ALTER SYSTEM, ALTER SESSION
値の範囲 0からUB4MAXVAL (4294967295)
Basic いいえ

CLIENT_PREFETCH_ROWSパラメータは、ALTER SESSIONまたはALTER SYSTEMで設定できます。ALTER SESSIONを使用してパラメータ値が変更されると、後続の結果セット・フェッチでその特定のセッションに対して新しい値が有効になります。ALTER SYSTEMを使用してパラメータ値が変更された場合、新しい値は、ALTER SYSTEMコマンドの後に作成された接続で実行される文に対して有効になります。

たとえば、CLIENT_PREFETCH_ROWSが100に設定され、クライアント・アプリケーションが10行のフェッチを要求した場合、合計110行がクライアント・ドライバに返されます。110行中の最初の10行がアプリケーションに与えられ、クライアント・ドライバは残りの100行を内部的にバッファリングします。クライアント・アプリケーションから次の10行がフェッチされ、フェッチ反復ごとに10行がそれぞれ、クライアント・ドライバによって内部的にバッファされる100行から処理できます。このプロセスにより、データベースとの間の必要なネットワーク・ラウンドトリップの数が削減されます。この例では、11番目のフェッチで、新しいネットワーク・ラウンドトリップが発生し、結果セットが使い果たされておらず、サイクルが繰り返されているかぎり、データベースは110行の次のバッチを返します。

CLIENT_PREFETCH_ROWSの設定に関するノート:

  • CLIENT_PREFETCH_ROWSがゼロ以外の値に設定されている場合、その値はプリフェッチ行数のデフォルトのOCI_ATTR_PREFETCH_ROWS値よりも優先されます。

  • OCI_ATTR_PREFETCH_ROWS値がデフォルト以外の値に設定されている場合、プリフェッチ行数のCLIENT_PREFETCH_ROWS値は無視されます。

  • OCIAttrSet()CLIENT_PREFETCH_ROWSを使用する場合:

    OCI_ATTR_PREFETCH_ROWSは、プリフェッチされるトップレベル行の数を設定します。デフォルトは1行です。ただし、CLIENT_PREFETCH_ROWSが設定されている場合、プリフェッチされる最上位行の数は、次の優先順位によって決定されます。

    1. OCIAttrSet()関数またはoraaccess.xmlを値'1'として使用してOCI_ATTR_PREFETCH_ROWS属性を設定すると、データベース初期化パラメータのCLIENT_PREFETCH_ROWS値が優先され、プリフェッチされる最上位行の数が決定されます。

    2. OCIAttrSet()関数またはoraaccess.xmlを1以外の値'x'として使用してOCI_ATTR_PREFETCH_ROWS属性を設定すると、最上位行数の'x'がプリフェッチされ、データベース初期化パラメータCLIENT_PREFETCH_ROWSは無視されます。

    3. OCIAttrSet()またはoraaccess.xmlを使用してOCI_ATTR_PREFETCH_ROWS値を設定しない場合、データベース初期化パラメータのCLIENT_PREFETCH_ROWS値が優先され、プリフェッチされる最上位行の数が決定されます。

  • OCIAttrGet()CLIENT_PREFETCH_ROWSを使用する場合:

    ファンクションOCIAttrGet()は、OCI_ATTR_PREFETCH_ROWSoraaccess.xmlおよびデータベース初期化パラメータCLIENT_PREFETCH_ROWSから設定された有効なプリフェッチ行値を返します。OCI_ATTR_PREFETCH_MEMORY値が設定されている場合、OCIAttrGet()によって返される値は、最終的なプリフェッチ行の値ではない可能性があり、OCI_ATTR_PREFETCH_MEMORY属性で指定されたメモリー値で許可される最大行数に制限される場合があります。

参照:

JOB_QUEUE_PROCESSES

JOB_QUEUE_PROCESSESパラメータを設定して、Oracle Scheduler (DBMS_SCHEDULER)ジョブを実行するために作成できるジョブ・ワーカーの最大数を指定します。

値を0に設定すると、Oracle提供でないスケジューラ・ジョブが無効になります。

プロパティ 説明
パラメータ型 Integer
構文 JOB_QUEUE_PROCESSES = integer
デフォルトの値

デフォルト値は、ECPU数(データベースがOCPUを使用している場合のOCPU数)およびECPU自動スケーリングの設定(データベースがOCPUを使用する場合のOCPU自動スケーリング)によって異なります。詳細は次の表を参照してください。

変更可能 ALTER SYSTEM
値の範囲

最小値: 0

最大値は、次の表に示すように、ECPU数(データベースがOCPUを使用する場合、OCPU数)およびECPU自動スケーリングの設定(データベースがOCPUを使用する場合、OCPU自動スケーリング)によって異なります。

JOB_QUEUE_PROCESSESのデフォルト値と最大値は、使用するコンピュート・モデルによって異なります。詳細は、Autonomous Databaseのコンピュート・モデルを参照してください。

コンピュート・モデル 自動スケーリングが無効なデフォルトおよび最大値 自動スケーリングが有効なデフォルトおよび最大値
ECPU 7.5 x ECPU数 22.5 x ECPU数
OCPU 30 x OCPU数 90 x OCPU数

Oracle Schedulerのジョブ・コーディネータおよびジョブ・ワーカーは、JOB_QUEUE_PROCESSESパラメータによって制御されます。Oracle Schedulerジョブ用に作成されるジョブ・ワーカーの数は、使用可能なリソース、リソース・マネージャ設定、現在実行中のジョブなどの複数のファクタに応じて、スケジューラにより自動チューニングされます。

JOB_QUEUE_PROCESSESのデフォルト値では、アプリケーションのサービス品質とシステム・リソースの適切な使用の両立を図っています。ただし、すべての環境にデフォルト値が適合するとはかぎりません。

JOB_QUEUE_PROCESSESの値を0に設定すると、Oracle提供でないスケジューラ・ジョブが無効になります。JOB_QUEUE_PROCESSES0に設定されている場合、Oracle提供ユーザーの内部ジョブは無効化されません(Oracle提供ユーザーが実行するサービス関連ジョブは引き続きスケジュールされます)。

Oracle提供のユーザーは、値がYORACLE_MAINTAINEDとしてマークされたユーザーです。Oracle提供以外のユーザーは、値がNORACLE_MAINTAINEDとしてマークされたユーザーです。

詳細は、ALL_USERSを参照してください。

LOCKDOWN_ERRORS

LOCKDOWN_ERRORSパラメータを設定して、Autonomous Databaseのロックダウン・プロファイル・エラーが発生するか無視するかを制御します。

Autonomous Databaseは、ロックダウン・プロファイルを使用して、特定のデータベース機能および機能を制限します。デフォルトでは、Autonomous Databaseロックダウン・プロファイルによって制限されているSQLコマンドを実行しようとすると、データベースによってエラーが発生します。LOCKDOWN_ERRORSパラメータを使用すると、ロックダウン・プロファイル・エラーを抑制できます。また、LOCKDOWN_ERRORSが値IGNOREに設定されている場合、エラーを無視すると、データベースのSQL文、ユーザーおよびコマンド・タイムスタンプに関する詳細が記録されます。

ノート

このパラメータの値をIGNOREに設定する前に、既存のスクリプトを慎重に評価してください。値をIGNOREに設定すると、使用する既存のスクリプトによってロックダウン・エラーは発生しなくなります。

DBA_LOCKDOWN_ERRORSビューを使用して、ロックダウン・プロファイル・エラーに関する情報を取得できます。詳細は、ロックダウン・エラー・ビューを参照してください。

プロパティ 説明
パラメータ型 文字列
構文 LOCKDOWN_ERRORS = IGNORE | RAISE
デフォルトの値

デフォルト値はRAISEです。

変更可能 ALTER SYSTEM
有効な値

RAISE: ロックダウン・プロファイル・エラーを生成します。

IGNORE: ロックダウン・プロファイル・エラーを抑制します。

RESULT_CACHE_INTEGRITY

RESULT_CACHE_INTEGRITYパラメータを設定して、結果キャッシュで結果キャッシュの候補として決定的でない可能性のある構造を使用する問合せを考慮するかどうかを指定します。

プロパティ 説明
パラメータ型 文字列
構文 RESULT_CACHE_INTEGRITY = { ENFORCED | TRUSTED }
デフォルトの値

Autonomous Databaseのデフォルト値はENFORCEDです

変更可能 ALTER SYSTEM

  • ENFORCED: RESULT_CACHE_MODEまたは指定されたヒントの設定に関係なく、結果キャッシュの対象となるのは決定論的な構成のみです。たとえば、決定論的として宣言されていないPL/SQLファンクションを使用する問合せはキャッシュされません(ファンクションが決定論的として宣言されていないかぎり、そのようなファンクションを使用した問合せ結果はキャッシュされません)。

  • TRUSTED: データベースは、RESULT_CACHE_MODEおよび指定されたヒントの設定を尊重し、結果キャッシュの候補として決定的でない可能性のある構造を使用する問合せを検討します。たとえば、決定論的として宣言されていないPL/SQLファンクションを使用する問合せはキャッシュできます。ただし、非決定的であることがわかっている結果はキャッシュされません(たとえば、SYSDATEまたはSYSDATEを含むコンストラクト)。

RESULT_CACHE_MODE

RESULT_CACHE_MODEパラメータを設定して、結果キャッシュに格納する適格な問合せを指定します。結果キャッシュ演算子が指定されている問合せ計画のみが、結果キャッシュに対する読取りまたは書込みを試行します。

プロパティ 説明
パラメータ型 文字列
構文 RESULT_CACHE_MODE = { MANUAL | MANUAL_TEMP | FORCE | FORCE_TEMP }
デフォルト値

ワークロード・タイプがデータ・ウェアハウスに設定されているAutonomous Databaseの場合: FORCE

ワークロード・タイプ「トランザクション処理」、「JSON」または「APEX」の場合: MANUAL

変更可能 ALTER SESSION, ALTER SYSTEM

詳細は、RESULT_CACHE_MODEを参照してください。

SQLの結果キャッシュ・ヒントの使用

キャッシュの動作を制御するには、アプリケーション・レベルで結果キャッシュ・ヒントを使用します。SQLの結果キャッシュ・ヒントは、結果キャッシュのモードおよび表注釈よりも優先されます。

SQL結果キャッシュ・ヒントは、次の方法で使用できます。

  • RESULT_CACHEヒントの使用

  • NO_RESULT_CACHEヒントの使用

  • ビューでのRESULT_CACHEヒントの使用

RESULT_CACHEヒントの使用

結果キャッシュ・モードがMANUALの場合、/*+ RESULT_CACHE */ヒントは、問合せブロックの結果をキャッシュに格納し、キャッシュされた結果を今後の実行で使用するようデータベースに指示します。

詳細は、RESULT_CACHEヒントの使用およびRESULT_CACHEヒントを参照してください。

NO_RESULT_CACHEヒントの使用

/*+ NO_RESULT_CACHE */ヒントは、データベースがサーバーまたはクライアントの結果キャッシュに結果をキャッシュしないように指示します。

詳細は、NO_RESULT_CACHEヒントの使用およびRESULT_CACHEヒントを参照してください。

ビューでのRESULT_CACHEヒントの使用

RESULT_CACHEヒントは、ヒントが指定された問合せブロックにのみ適用されます。ビューにのみヒントが指定されている場合は、その結果のみがキャッシュされます。

詳細は、「ビューでのRESULT_CACHEヒントの使用」およびRESULT_CACHEヒントを参照してください。