SQLを使用して、Oracleデータベースに許可されている最大接続数を確認する最良の方法は何ですか?最後に、現在のセッション数と許可されている合計数を示したいと思います。たとえば、「現在、80接続のうち23接続が使用されています」。
SQLを使用して、Oracleデータベースに許可されている最大接続数を確認する最良の方法は何ですか?最後に、現在のセッション数と許可されている合計数を示したいと思います。たとえば、「現在、80接続のうち23接続が使用されています」。
回答:
Oracleデータベースがサポートする接続数の決定には、いくつかの異なる制限があります。最も簡単な方法は、SESSIONSパラメータとV $ SESSIONを使用することです。
データベースが許可するように構成されたセッションの数
SELECT name, value 
  FROM v$parameter
 WHERE name = 'sessions'現在アクティブなセッションの数
SELECT COUNT(*)
  FROM v$sessionただし、前述したように、データベースレベルとオペレーティングシステムレベルの両方で、共有サーバーが構成されているかどうかによって、他にも潜在的な制限があります。共有サーバーが無視される場合、SESSIONSパラメータの制限に達する前に、PROCESSESパラメータの制限に達する可能性があります。また、各セッションには一定量のRAMが必要なため、オペレーティングシステムの制限に達する可能性があります。
v$sessionビューに対する権限を持っていないことを意味します。DBAにその権限を付与するよう依頼する必要があります。ほとんどの場合、そのオブジェクトのみの役割または直接付与も機能するが、select any dictionary特権が必要ですselect_catalog_role。
                    セッションから導出されたパラメータのプロセスのパラメータと、あなたが最大プロセス数を変更したときにそれに応じて変化します。詳細については、Oracleのドキュメントを参照してください。
セッションに関する情報のみを取得するには:
    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 ------------- ------------------- --------------- --- -------- プロセス96 309 500 セッション104 323 792
このソースに基づいて、これはうまくいくと思いました。
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'注:これは質問の一部にのみ回答します。
許可されているセッションの最大数を知りたいだけの場合は、sysplusとしてsqlplusで実行できます。
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               integersessionsパラメータは必要なものです。
Oracleのセッション、プロセスを一目で見られるように、v $ resource_limitビューは私にとって非常に興味深いものです。
https://bbdd-error.blogspot.com.es/2017/09/check-sessions-and-processes-limit-in.html