ওরাকল ডাটাবেসের জন্য অনুমোদিত সংযোগগুলির সর্বাধিক সংখ্যার যাচাই করার জন্য এসকিউএল ব্যবহার করে সবচেয়ে ভাল উপায় কী? শেষে, আমি বর্তমান সেশনের সংখ্যা এবং অনুমোদিত অনুমোদিত সংখ্যাটি দেখাতে চাই, যেমন "বর্তমানে, 80 টির মধ্যে 23 টি সংযোগ ব্যবহৃত হয়েছে"।
ওরাকল ডাটাবেসের জন্য অনুমোদিত সংযোগগুলির সর্বাধিক সংখ্যার যাচাই করার জন্য এসকিউএল ব্যবহার করে সবচেয়ে ভাল উপায় কী? শেষে, আমি বর্তমান সেশনের সংখ্যা এবং অনুমোদিত অনুমোদিত সংখ্যাটি দেখাতে চাই, যেমন "বর্তমানে, 80 টির মধ্যে 23 টি সংযোগ ব্যবহৃত হয়েছে"।
উত্তর:
ওরাকল ডাটাবেস সমর্থন করে এমন সংযোগের সংখ্যা নির্ধারণে কয়েকটি আলাদা সীমাবদ্ধতা আসতে পারে। সর্বাধিক পন্থাটি হ'ল সেশন প্যারামিটার এবং ভি $ সেশন ব্যবহার করা, অর্থাৎ
অনুমতি দেওয়ার জন্য ডাটাবেসটি কনফিগার করা সেশনের সংখ্যা
SELECT name, value
FROM v$parameter
WHERE name = 'sessions'
বর্তমানে সক্রিয় সেশনের সংখ্যা
SELECT COUNT(*)
FROM v$session
আমি যেমন বলেছি, যদিও ডাটাবেস স্তরে এবং অপারেটিং সিস্টেমের স্তরে এবং ভাগ করা সার্ভারটি কনফিগার করা হয়েছে কিনা তার উপর নির্ভর করে অন্যান্য সম্ভাব্য সীমাবদ্ধতা রয়েছে। যদি ভাগ করা সার্ভারটি উপেক্ষা করা হয়, আপনি সেশনস প্যারামিটারের সীমাটি আঘাত করার আগে আপনি প্রসেসেস প্যারামিটারের সীমাটিকে ভালভাবে আঘাত করতে পারেন। এবং আপনি অপারেটিং সিস্টেমের সীমাতে আঘাত হানতে পারেন কারণ প্রতিটি সেশনে নির্দিষ্ট পরিমাণের র্যামের প্রয়োজন হয়।
v$session
দৃষ্টিভঙ্গিতে অধিকার নেই । আপনাকে আপনার ডিবিএর কাছে এই সুযোগটি দেওয়ার জন্য জিজ্ঞাসা করতে হবে। সম্ভবত, আপনি সেই অধিকারটি চাইবেন select any dictionary
যদিও select_catalog_role
ঠিক সেই বস্তুর ভূমিকা বা সরাসরি অনুদানও কাজ করবে।
সেশন প্যারামিটার থেকে প্রাপ্ত করা হয় প্রসেস প্যারামিটার এবং সেই অনুযায়ী পরিবর্তন যখন আপনি সর্বোচ্চ প্রসেস সংখ্যা পরিবর্তন করুন। আরও তথ্যের জন্য ওরাকল ডক্স দেখুন ।
সেশনগুলির সম্পর্কে কেবল তথ্য পেতে:
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
তবে, জাস্টিন গুহা ঠিক আছে is এই ক্যোয়ারী আরও ভাল ফলাফল দেয়:
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'
দ্রষ্টব্য: এটি কেবল প্রশ্নের অংশের উত্তর দেয়।
আপনি যদি সর্বাধিক সংখ্যক সেশনের অনুমতি পেতে চান তবে সিক্ল্ডপ্লাসে 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
সেশনগুলির প্যারামিটারটি আপনি যা চান তা হ'ল।
ভি $ রিসোর্স_লিট ভিউটি আমার কাছে ওরাকল সেশনগুলি, প্রক্রিয়াগুলিকে এক নজরে দেখার জন্য খুব আকর্ষণীয়:
https://bbdd-error.blogspot.com.es/2017/09/check-sessions-and-processes-limit-in.html
select count(*),sum(decode(status, 'ACTIVE',1,0)) from v$session where type= 'USER'