程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> ORACLE推導參數Derived Parameter介紹,derivedparameter

ORACLE推導參數Derived Parameter介紹,derivedparameter

編輯:Oracle教程

ORACLE推導參數Derived Parameter介紹,derivedparameter


Oracle的推導參數(Derived Parameters)其實是初始化參數的一種。推導參數值通常來自於其它參數的運算,依賴其它參數計算得出。官方文檔關於推導參數(Derived Parameters)的概念如下:

 

Derived Parameters

Some initialization parameters are derived, meaning that their values are calculated from the values of other parameters. Normally, you should not alter values for derived parameters, but if you do, then the value you specify will override the calculated value.

For example, the default value of the SESSIONS parameter is derived from the value of the PROCESSES parameter. If the value of PROCESSES changes, then the default value of SESSIONS changes as well, unless you override it with a specified value.

 

很奇怪的是官方資料關於推導參數(Derived Parameters)的介紹非常少,幾乎就是那麼一點,無法從v$parameter等系統視圖獲取那些是推導參數(Derived Parameters),查了一些資料似乎還有下面一些參數是推導參數.

 

· _enqueue_hash_chains- The default value is derived from processesparameter.

·

· db_block_checkpoint_batch - This parameter specifies the number of blocks that the DBWR writes in one batch when performing a checkpoint. Setting this value too high causes the system to flood the I/O devices during the checkpoint, severely degrades performance, and increases response times--maybe to unacceptable levels.

·

· enqueue_resources - This parameter specifies the number of resources that can be locked by the lock manager. The default value is derived fromprocesses and is usually sufficient.

·

· nls_currency - This parameter is derived from nls_territory, and specifies the string to use as the local currency symbol for the L number format element.

·

· nls_date_format - This parameter is derived from nls_territory and definesthe default date format to use with the to_char and to_date functions. The value of this parameter is any valid date format mask.

·

· nls_iso_currency - Derived from nls_territory, this parameter defines the string to use as the international currency symbol for the C number format element.

·

· nls_numeric_characters - This is derived from nls_territory, and defines the characters to be used as the group separator and decimal.

·

· nls_sort - Derived from nls_language, this parameter is set to BINARY, the collating sequence for ORDER BY is based on the numeric values of the characters. A linguistic sort decides the order based on the defined linguistic sort. A binary sort is much more efficient and uses much less overhead.

·

· sessions - This parameter specifies the total number of user and system sessions, and is set to 1.1 times the value of the processes parameter.

 

以前在這篇文章裡面ORACLE會話連接進程三者總結,我一直有個關於修改了session值後,session與process的關系公式不成立了的問題,當時一直沒有搞明白,當時不知道推導參數概念,現在想想其實非常簡單,其實就是因為我修改sessions這個推導參數,覆蓋了推導值。下面再演示一下:

 
SQL> show parameter process;
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer     0
db_writer_processes                  integer     1
gcs_server_processes                 integer     0
job_queue_processes                  integer     10
log_archive_max_processes            integer     10
processes                            integer     870
SQL> show parameter session;
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size           integer     0
java_soft_sessionspace_limit         integer     0
license_max_sessions                 integer     0
license_sessions_warning             integer     0
logmnr_max_persistent_sessions       integer     1
session_cached_cursors               integer     400
session_max_open_files               integer     10
sessions                             integer     962
shared_server_sessions               integer
SQL> select ceil(870*1.1) +5 from dual;
 
CEIL(870*1.1)+5
---------------
            962

 

同時修改參數sessions和processes,然後重啟數據庫,然後檢查參數processes與sessions的關系。

 

SQL> alter system set sessions=800 scope=spfile;
 
System altered.
 
SQL> alter system set processes=600 scope=spfile;                    
 
System altered.
 
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
 
 
SQL> startup;
ORACLE instance started.
 
Total System Global Area 1509949440 bytes
Fixed Size                  2096472 bytes
Variable Size            1358955176 bytes
Database Buffers          100663296 bytes
Redo Buffers               48234496 bytes
Database mounted.
Database opened.
SQL> show parameter processes;
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer     0
db_writer_processes                  integer     1
gcs_server_processes                 integer     0
job_queue_processes                  integer     10
log_archive_max_processes            integer     10
processes                            integer     600
SQL> show parameter session
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size           integer     0
java_soft_sessionspace_limit         integer     0
license_max_sessions                 integer     0
license_sessions_warning             integer     0
logmnr_max_persistent_sessions       integer     1
session_cached_cursors               integer     400
session_max_open_files               integer     10
sessions                             integer     800
shared_server_sessions               integer
SQL> select ceil(1.1*600)+5 from dual;
 
CEIL(1.1*600)+5
---------------
            665

 

如上所示,processes與sessions的關系已經不成立了:sessions=(1.1 * processes) + 5(Oracle 10g)。主要還是因為推導參數session設置後,覆蓋了推導值。這個參數值已經寫入了參數文件spfile或pfile當中。

SQL> create pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/init_session.ora' from spfile;
 
File created.
 
SQL> 
 
 
[oracle@DB-Server dbs]$ grep session init_session.ora
*.session_cached_cursors=400
*.sessions=800
[oracle@DB-Server dbs]$ grep process init_session.ora
*.job_queue_processes=10
*.log_archive_max_processes=10
*.processes=600

 

參考資料:

http://www.dba-oracle.com/t_derived_parameters.htm

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved