वीएसएएम - वैकल्पिक सूचकांक
वैकल्पिक सूचकांक अतिरिक्त सूचकांक हैं जो उनके प्राथमिक सूचकांक के अलावा KSDS / ESDS डेटासेट के लिए बनाए जाते हैं। एक वैकल्पिक सूचकांक एक से अधिक कुंजी का उपयोग करके रिकॉर्ड तक पहुंच प्रदान करता है। वैकल्पिक सूचकांक की कुंजी एक गैर-अद्वितीय कुंजी हो सकती है, इसमें डुप्लिकेट हो सकते हैं।
वैकल्पिक सूचकांक का निर्माण
वैकल्पिक सूचकांक बनाने के लिए निम्नलिखित चरणों का उपयोग किया जाता है -
- वैकल्पिक सूचकांक को परिभाषित करें
- पथ परिभाषित करें
- बिल्डिंग इंडेक्स
वैकल्पिक सूचकांक को परिभाषित करें
वैकल्पिक सूचकांक का उपयोग करके परिभाषित किया गया है DEFINE AIX आदेश।
DEFINE AIX -
(NAME(alternate-index-name) -
RELATE(vsam-file-name) -
CISZ(number) -
FREESPACE(CI-Percentage,CA-Percentage) -
KEYS(length offset) -
NONUNIQUEKEY / UNIQUEKEY -
UPGRADE / NOUPGRADE -
RECORDSIZE(average maximum)) -
DATA -
(NAME(vsam-file-name.data)) -
INDEX -
(NAME(vsam-file-name.index))
उपर्युक्त वाक्यविन्यास उन मापदंडों को दर्शाता है जो वैकल्पिक सूचकांक को परिभाषित करते समय उपयोग किए जाते हैं। हमने पहले ही Define Cluster Module में कुछ मापदंडों पर चर्चा की है और कुछ नए मापदंडों का उपयोग वैकल्पिक सूचकांक को परिभाषित करने में किया गया है, जिनके बारे में हम चर्चा करेंगे: -
अनु क्रमांक | विवरण के साथ पैरामीटर |
---|---|
1 | DEFINE AIX परिभाषित AIX कमांड का उपयोग वैकल्पिक सूचकांक को परिभाषित करने और इसके घटकों के लिए पैरामीटर विशेषताओं को निर्दिष्ट करने के लिए किया जाता है। |
2 | NAME NAME वैकल्पिक सूचकांक का नाम निर्दिष्ट करता है। |
3 | RELATE संबंधित VAMAM क्लस्टर का नाम निर्दिष्ट करता है जिसके लिए वैकल्पिक सूचकांक बनाया जाता है। |
4 | NONUNIQUEKEY / UNIQUEKEY UNIQUEKEY निर्दिष्ट करता है कि वैकल्पिक सूचकांक अद्वितीय है और NONUNIQUEKEY निर्दिष्ट करता है कि डुप्लिकेट मौजूद हो सकते हैं। |
5 | UPGRADE / NOUPGRADE UPGRADE निर्दिष्ट करता है कि बेस क्लस्टर को संशोधित करने पर वैकल्पिक इंडेक्स को संशोधित किया जाना चाहिए और NOUPGRADE निर्दिष्ट करता है कि बेस क्लस्टर को संशोधित करने पर वैकल्पिक इंडेक्स को अकेला छोड़ दिया जाना चाहिए। |
उदाहरण
जेसीएल में एक वैकल्पिक सूचकांक को कैसे परिभाषित किया जाए, यह दिखाने के लिए एक मूल उदाहरण निम्नलिखित है -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
DEFINE AIX (NAME(MY.VSAM.KSDSAIX) -
RELATE(MY.VSAM.KSDSFILE) -
CISZ(4096) -
FREESPACE(20,20) -
KEYS(20,7) -
NONUNIQUEKEY -
UPGRADE -
RECORDSIZE(80,80)) -
DATA(NAME(MY.VSAM.KSDSAIX.DATA)) -
INDEX(NAME(MY.VSAM.KSDSAIX.INDEX))
/*
यदि आप उपरोक्त JCL को मेनफ्रेम सर्वर पर निष्पादित करेंगे। इसे MAXCC = 0 के साथ निष्पादित करना चाहिए और यह MY.VSAM.KSDSAIX वैकल्पिक सूचकांक बनाएगा।
पथ परिभाषित करें
बेस क्लस्टर के लिए वैकल्पिक सूचकांक से संबंधित करने के लिए Define Path का उपयोग किया जाता है। पथ को परिभाषित करते समय हम पथ का नाम और वैकल्पिक सूचकांक निर्दिष्ट करते हैं जिससे यह पथ संबंधित है।
DEFINE PATH -
NAME(alternate-index-path-name) -
PATHENTRY(alternate-index-name))
सिंटैक्स के ऊपर दो पैरामीटर हैं। वैकल्पिक सूचकांक पथ नाम निर्दिष्ट करने के लिए NAME का उपयोग किया जाता है और वैकल्पिक सूचकांक नाम निर्दिष्ट करने के लिए PATHENTRY का उपयोग किया जाता है।
उदाहरण
पथ को जेसीएल में परिभाषित करने के लिए एक मूल उदाहरण निम्नलिखित है -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
DEFINE PATH -
NAME(MY.VSAM.KSDSAIX.PATH) -
PATHENTRY(MY.VSAM.KSDSAIX))
/*
यदि आप उपरोक्त JCL को मेनफ्रेम सर्वर पर निष्पादित करेंगे। इसे MAXCC = 0 के साथ निष्पादित करना चाहिए और यह बेस क्लस्टर के लिए वैकल्पिक सूचकांक के बीच पथ का निर्माण करेगा।
बिल्डिंग इंडेक्स
वैकल्पिक सूचकांक बनाने के लिए BLDINDEX कमांड का उपयोग किया जाता है। BLDINDEX VSAM अनुक्रमित डेटा सेट (या बेस क्लस्टर) में सभी रिकॉर्ड पढ़ता है और वैकल्पिक इंडेक्स बनाने के लिए आवश्यक डेटा को निकालता है।
BLDINDEX -
INDATASET(vsam-cluster-name) -
OUTDATASET(alternate-index-name))
सिंटैक्स के ऊपर दो पैरामीटर हैं। INDATASET का उपयोग VSAM क्लस्टर नाम को निर्दिष्ट करने के लिए किया जाता है और OUTDATASET का उपयोग वैकल्पिक सूचकांक नाम को निर्दिष्ट करने के लिए किया जाता है।
उदाहरण
जेसीएल में सूचकांक बनाने के लिए एक बुनियादी उदाहरण निम्नलिखित है -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
BLDINDEX -
INDATASET(MY.VSAM.KSDSFILE) -
OUTDATASET(MY.VSAM.KSDSAIX))
/*
यदि आप उपरोक्त JCL को मेनफ्रेम सर्वर पर निष्पादित करेंगे। इसे MAXCC = 0 के साथ निष्पादित किया जाना चाहिए और यह सूचकांक का निर्माण करेगा।