2012-05-19 10 views
5

मेरे पास परीक्षा प्रश्न है और उत्तर नहीं मिला। KILL SESSION कमांड करने के लिए sid क्यों अनिवार्य है?
KILL SESSION वाक्यविन्यास: ALTER SYSTEM KILL SESSION 'sid,session#[@inst_id]' [IMMEDIATE];
जहां एसआईडी एक 'अद्वितीय' सत्र पहचानकर्ता है। उद्धरण में अद्वितीय है क्योंकि यह वर्तमान क्षण में अद्वितीय है, ओरेकल सर्वर उदाहरण के लिए, सत्र कुछ sid के लिए, हो सकता है, लेकिन उसके बाद इस सत्र खत्म हो गया है, इस sid अन्य सत्र के लिए इस्तेमाल किया जा सकता। Sid ओएस में pid समानता है।
सत्र # एक धारावाहिक सत्र संख्या है; यह एक सत्र काउंटर है। सर्वर डीबी स्टार्टअप पर काउंटर साफ़ करें। तो, सत्र # सत्र के लिए वास्तव में अद्वितीय पहचानकर्ता है।'किल सत्र' (ओरेकल एसक्यूएल) में क्यों आवश्यक है?

मुझे समझ में नहीं आता कि sidKILL SESSION कमांड के लिए अनिवार्य क्यों है। मुझे लगता है, केवल session# का उपयोग करना संभव है।

धन्यवाद।

+0

मैंने हमेशा SESSION # के बजाय SERIAL # का उपयोग किया है। यानी अल्ट्रा सिस्टम किल सत्र 'सिड, सीरियल #'; जैसा कि वी $ SESSION – Glenn

+0

से लिया गया है हां, '@ inst_id' वैकल्पिक है और केवल आरएसी सर्वर में उपयोग किया जाता है। 'तत्काल' भी वैकल्पिक है; यह शानदार शट डाउन सत्र के लिए उपयोग किया जाता है। मुझे समझ में नहीं आता क्यों 'सिड' अनिवार्य है? – Jury

उत्तर

2

मुझे मिल गया! serial# के लिए अनुक्रम चक्रीय है। यदि int इस्तेमाल किया संख्या 2 अरबों लॉगिन के बाद दोबारा इस्तेमाल किया जाएगा, या 32k के बाद अगर short इस्तेमाल किया।तो, किसी भी चीज़ के बिना serial# का उपयोग करके वास्तव में अद्वितीय प्रदान नहीं करता है।
लेकिन sid एक पल में अद्वितीय है। तो, जोड़ी sid,serial#वास्तव में अद्वितीय है।
सत्रों का प्रबंधन करने के लिए आप serial# या sid का उपयोग नहीं कर सकते हैं, तो आपको इसे एक जोड़ी में उपयोग करना चाहिए।

आपके समय के लिए धन्यवाद!

4

आप सिड और सीरियल # जरूरत है।

सिड सत्र पहचानकर्ता

क्रम # सत्र सीरियल नंबर: ओरेकल reference इस में क्या कहना है। विशिष्ट रूप से सत्र के ऑब्जेक्ट्स की पहचान करने के लिए प्रयुक्त होता है। गारंटी देता है कि सत्र-स्तरीय आदेशों सही सत्र वस्तुओं पर लागू कर रहे हैं सत्र समाप्त होता है और दूसरे सत्र में एक ही सत्र आईडी

इसलिए जब एक सिड अद्वितीय है, इसे फिर से इस्तेमाल किया जा सकता के साथ शुरू होता है। तो मैं एक धारावाहिक # के अलावा लगता है कि यह सुनिश्चित करना होगा कि आप एक नए जुड़े सत्र है कि तुम क्या मारने के लिए कोशिश कर रहे थे की एक ही सिड उपयोग करने के लिए (इससे पहले कि आप आदेश निष्पादित करता है, तो वे पहले से ही काट दिया) होता है मत मारो। जूरी की टिप्पणी के जवाब में

अद्यतन:

मैं यह नहीं कह सकते क्यों यह इस तरह कार्यान्वित किया जाता है, बस प्रलेखन के अनुसार कार्यान्वयन की मेरी समझ: सिड, फिर से प्रयोग करने योग्य है एक सिड के भीतर क्रम # नहीं है। तो, एक उदाहरण के रूप:

  • [1,1] जो जोड़ता है और सिड 1, सीरियल # असाइन किया गया है 1
  • जो डिस्कनेक्ट
  • [1,2] टॉम जोड़ता है और सिड 1 असाइन किया गया है (पुन: उपयोग), लेकिन धारावाहिक # करने के लिए वृद्धि की जाती है 2
  • [2,1] सुसान जोड़ता है और सिड 2, सीरियल # 1

असाइन किया गया है क्यों इस कार्यान्वयन? संख्यात्मक आकार प्रबंधनीय रखता है, शायद? विवाद को कम करें? पहले से आवंटित संसाधनों का पुन: उपयोग (एसआईडी द्वारा प्रतिनिधित्व)? मुझे नहीं पता।

+0

मुझे यह पता है। तुम सही हो। 'सीरियल #' 'sid' के रूप में अधिक अद्वितीय है। सत्र की पहचान करने के लिए 'सिड' की आवश्यकता नहीं है .... लेकिन इसे 'हत्या सत्र' के लिए आवश्यक है। क्यूं कर? – Jury

+0

'सीरियल #' केवल वृद्धि में। यह डीबी पुनरारंभ पर साफ़ करता है। – Jury

+0

@ जूरी क्या आप कुछ ओरेकल दस्तावेज से लिंक कर सकते हैं जो इंगित करता है कि SERIAL # सभी एसआईडी में अद्वितीय है? – Glenn

2

मुझे पता है कि यह एक पुराना विषय है, लेकिन मैं यह इंगित करना चाहता था कि धारावाहिक # स्वयं एक अद्वितीय पहचानकर्ता के करीब भी नहीं है, यहां तक ​​कि किसी विशेष बिंदु पर भी।

SQL> select serial#, count(*) from v$session group by serial#; 

    SERIAL# COUNT(*) 
---------- ---------- 
     1   15 
     983   1 
     2   1 
     505   1 
     5   2 
     7076   1 
     7   2 
     58   1 
     3   3 
     9   1 
    22160   1 

11 rows selected. 

मेरे डेटाबेस में वर्तमान में 2 9 सत्रों में से केवल 11 विशिष्ट धारावाहिक हैं।

संपादित करें: और यह एक एकल उदाहरण डेटाबेस है। एक आरएसी पर्यावरण में, आपको वास्तव में अद्वितीय सत्र प्राप्त करने के लिए इंस्टेंस आईडी शामिल करने की आवश्यकता है, जो मैं समझता हूं (मैंने कभी भी आरएसी डेटाबेस के साथ व्यक्तिगत रूप से काम नहीं किया है)।

संबंधित मुद्दे