使用SQL檢查Oracle數據庫允許的最大連接數的最佳方法是什麼?最後,我想顯示當前的會話次數和允許的總數,例如「目前,使用80個連接中的23個」。如何檢查允許連接到Oracle數據庫的最大數量?
回答
在確定Oracle數據庫支持的連接數時可能會發揮幾個不同的限制。最簡單的方法是使用會話參數和V $ SESSION,即
數據庫被配置爲允許
SELECT name, value
FROM v$parameter
WHERE name = 'sessions'
當前活動的會話數的會話數
SELECT COUNT(*)
FROM v$session
正如我所說的,儘管如此,在數據庫級別和操作系統級別還有其他潛在的限制,並取決於是否配置了共享服務器。如果共享服務器被忽略,那麼在達到SESSIONS參數的限制之前,您可能會碰到PROCESSES參數的限制。而且您可能會遇到操作系統限制,因爲每個會話都需要一定量的RAM。
我認爲這將工作,基於this source。
SELECT
'Currently, '
|| (SELECT COUNT(*) FROM V$SESSION)
|| ' out of '
|| DECODE(VL.SESSIONS_MAX,0,'unlimited',VL.SESSIONS_MAX)
|| ' connections are used.' AS USAGE_MESSAGE
FROM
V$LICENSE VL
但是,賈斯汀洞穴是正確的。此查詢提供了更好的結果:
SELECT
'Currently, '
|| (SELECT COUNT(*) FROM V$SESSION)
|| ' out of '
|| VP.VALUE
|| ' connections are used.' AS USAGE_MESSAGE
FROM
V$PARAMETER VP
WHERE VP.NAME = 'sessions'
對不起,我們如何運行此查詢?我收到「SELECT COUNT(*)FROM v $ session」的「表或視圖不存在」 – lorraine 2016-07-21 09:20:46
@ yin03您使用Oracle或其他類型的數據庫嗎?如果是Oracle,它可能是一個權限問題。 – JosephStyons 2016-07-21 13:22:19
select count(*),sum(decode(status, 'ACTIVE',1,0)) from v$session where type= 'USER'
注意:這隻能回答問題的一部分。
如果你只是想知道的最大會話數允許的,那麼你就可以在sqlplus執行,以SYSDBA:
SQL> show parameter 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 248
shared_server_sessions integer
的會議參數是你想要的。
的會議參數當你改變最大進程數從過程參數,並相應改變的。有關更多信息,請參閱Oracle docs。
要獲得大約只有會話的信息:
select current_utilization, limit_value
from v$resource_limit
where resource_name='sessions';
CURRENT_UTILIZATION LIMIT_VALUE ------------------- ----------- 110 792
試試這個功能顯示兩個信息:
select resource_name, current_utilization, max_utilization, limit_value
from v$resource_limit
where resource_name in ('sessions', 'processes');
RESOURCE_NAME CURRENT_UTILIZATION MAX_UTILIZATION LIMIT_VALUE ------------- ------------------- --------------- ----------- processes 96 309 500 sessions 104 323 792
RAC使用GV $ session中,如果你想要獲得羣集中的會話總數。
v $ resource_limit視圖對我來說非常有趣,可以瀏覽Oracle會話,流程..:
https://bbdd-error.blogspot.com.es/2017/09/check-sessions-and-processes-limit-in.html
- 1. 如何連接到oracle數據庫:((
- 2. 連接到Oracle數據庫
- 3. 連接到Oracle數據庫
- 4. 連接到SQL Server數據庫的最大數量
- 5. 一個允許用戶直接連接到數據庫的API
- 6. Oracle連接檢索或從數據庫
- 7. jtable上允許的最大數量行
- 8. Firebase允許android應用程序連接到您的數據庫
- 9. 許多連接與大數據查詢
- 10. can default.png允許檢查數據庫中的數據
- 11. 到Oracle數據庫的PHP連接
- 12. 如何從PHP連接Oracle數據庫
- 13. 如何連接oracle數據庫與ASP.Net
- 14. 如何連接oracle 11g r1數據庫
- 15. 允許的最大cookie數
- 16. Oracle數據庫連接
- 17. clsql連接oracle數據庫
- 18. 連接Oracle數據庫
- 19. netbeans連接oracle數據庫
- 20. Oracle數據庫連接
- 21. 如何將oracle表單連接到oracle數據庫?
- 22. 允許用戶遠程連接到MySQL數據庫
- 23. SQL Server 2008中允許的最大連接數是多少?
- 24. JDBC連接錯誤到Oracle數據庫
- 25. 未能連接到oracle數據庫
- 26. Android連接到oracle數據庫
- 27. 使用PySpark連接到Oracle數據庫
- 28. 使用Ruby連接到Oracle數據庫
- 29. 連接到Oracle數據庫在Windows
- 30. 在VB中連接到Oracle數據庫
對不起,我們該如何運行這個查詢?我收到「SELECT COUNT(*)FROM v $ session」的「table or view not exist」 – lorraine 2016-07-21 09:16:30
@ yin03 - 這意味着您使用的任何Oracle用戶在`v $ session`視圖中都沒有權限。您需要請您的DBA授予您該特權。最有可能的是,你希望'選擇任何字典'特權,儘管'select_catalog_role'角色或者直接授予該對象也是可行的。 – 2016-07-21 17:30:52