Oracle會話及串連數最佳化,oracle會話

來源:互聯網
上載者:User

Oracle會話及串連數最佳化,oracle會話

一、修改Oracle會話及最大串連數

1、查看最大串連數

SQL> show parameter processes;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer     0
db_writer_processes                  integer     3
gcs_server_processes                 integer     0
global_txn_processes                 integer     1
job_queue_processes                  integer     1000
log_archive_max_processes            integer     4
processes                            integer     150

2、修改最大串連數

SQL> alter system set processes=500 scope=spfile;

  系統已更改。

3、查看最大會話數

SQL> show parameters sessions;

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
sessions                             integer     264
shared_server_sessions               integer

4、修改最大會話數

  SQL> alter system set sessions=555 scope=spfile;

  系統已更改。
5、串連數和會話數計算關係

       sessions = 1.1 * process + 5

    說明:串連數和會話數參數修改,Oracle必須重啟

二、常用會話及串連數查詢方法

1、查詢資料庫最大串連數

SQL> show parameter processes;

或者

SQL>select value from v$parameter where name = 'processes';

2、修改資料庫最大串連數(預設150)

SQL> alter system set processes=500 scope=spfile;

3、查詢資料庫當前串連數

SQL> select count(*) from v$process;
4、查看資料庫最大會話數

SQL> show parameters sessions;

或者

SQL> select value from v$parameter where name = 'sessions';

5、修改資料庫最大會話數(預設248)

SQL> alter system set sessions=555 scope=spfile;

6、查看當前會話數

SQL> select count(*) from v$session;

7、查看當前並發(活動)會話數

SQL> select count(*) from v$session where status='ACTIVE';

8、查看當前會話詳細資料

SQL> select sid,serial#,username,program,machine,status from v$session;

9、查看正在使用的使用者

select osuser,
       t1.username as username,
       cpu_time / executions / 1000000 || 's' as runtimes,
       sql_fulltext,
       machine
  from v$session t1, v$sqlarea t2
 where t1.sql_address = t2.address
 order by runtimes desc;

三、OS的參數區別

1、Linux和Windows系統,對sessions的處理是有區別的

    Linux系統1會話對應1個進程處理

    Windows系統1會話對應1個線程處理


oracle老提示限制串連數,怎讓oracle無限串連

只能設定很大,不能無限
當前的串連數
select count(*) from v$process;
設定的最大串連數(預設值為150)
select value from v$parameter where name = 'processes';
修改最大串連數
alter system set processes = 300 scope = spfile;
當資料庫最大串連數不夠時會出現用戶端串連間歇性失敗,報錯ORA-12519。

修改Oracle最大串連數的方法
1、 進入“SQL*Plus Worksheet”,如所示。
2、 點擊“改變資料庫連接…”按鈕,如所示。
3、 進入“資料庫連接資訊”介面,輸入使用者名稱、口令、需要修改最大串連數的資料庫服務名,串連身份選擇“SYSDBA”,點擊“確定”,如所示。
4、 輸入指令“show parameter processes;”並執行,查看目前最大串連數,如所示。
5、 輸入指令“alter system set processes=600 scope=spfile;”並執行,修改最大串連數為600,如所示。
6、 輸入指令“create pfile from spfile;”並執行,建立Profile,如所示。
7、 關閉“Enterprise Manager Console”,重啟Oracle服務或重啟Oracle資料庫伺服器
8、 重複操作1、2、3、4步,確認最大串連數修改成功。
 
問ORACLE怎查看更改串連數,進程數及使用者數,三者之間有什關係?

SQL> select count(*) from v$session #串連數
SQL> Select count(*) from v$session where status='ACTIVE' #並發串連數
SQL> show parameter processes #最大串連

process:這個參數限制了能夠串連到SGA的作業系統進程數(或者是Windows 系統中的線程數),這個總數必須足夠大,從而能夠適用於後台進程與所有的專用伺服器處理序,此外,共用伺服器處理序與調度進程的數目也被計算在內.因此,在專用伺服器環境中,這是一種限制並發串連數的方法.

Sessions:是被應用於oracle層次而非作業系統層次.在不考慮通過專用伺服器或共用伺服器進行登入的情況下,這個參數限制了對指定執行個體的並發登陸數.
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.