यह ब्लॉग Oracle® Exadata® स्मार्ट स्कैन फ़ीचर के विवरण की पड़ताल करता है, जिसमें यह भी बताया गया है कि कैसे SQL संसाधन Exadata और उपयोग के उदाहरणों से भिन्न है।
परिचय
Oracle ने 2008 में Exadata को डिज़ाइन किया और इंजीनियर सिस्टम के परिवार में सबसे पहले में से एक के रूप में पेश किया। पारंपरिक डेटाबेस सिस्टम के विपरीत, जो एक उपयोगकर्ता द्वारा कॉन्फ़िगर, स्थापित, ट्यून और प्रबंधित किए जाते हैं, एक इंजीनियर सिस्टम में सभी आवश्यक घटक होते हैं जैसे OS, डेटाबेस, मेमोरी और स्टोरेज प्रीइंस्टॉल्ड, कॉन्फ़िगर, ट्यून और समाधान प्रदाता द्वारा अनुकूलित, जैसे कि ओरेकल।
एक्सडाटा मशीन के विभिन्न घटक होते हैं। निम्नलिखित घटक प्राथमिक हैं:
-
डेटाबेस सर्वर :एंटरप्राइज़-श्रेणी के सर्वर जो डेटाबेस सॉफ़्टवेयर, स्वचालित संग्रहण प्रबंधन (ASM), या Oracle ग्रिड इन्फ्रास्ट्रक्चर चलाते हैं।
-
संग्रहण सर्वर :स्टोरेज सर्वर, या सेल, जो एक्सडाटा स्टोरेज सर्वरसॉफ़्टवेयर चलाते हैं, जो डेटाबेस सर्वर से आने वाले I/O अनुरोधों का प्रबंधन करता है और उपयोगकर्ता को डेटा वापस करने के लिए अनुरोध करता है।
-
इन्फिनीबैंड नेटवर्क :आंतरिक Exadata नेटवर्क InfiniBand पर बनाया गया है, जो मुख्य रूप से उच्च-प्रदर्शन कंप्यूटिंग वातावरण के लिए डिज़ाइन किया गया है।
Exadata सॉफ्टवेयर के साथ आता है जिसे Exadata Storage Software (ESS) के नाम से जाना जाता है, जो डेटाबेस के प्रदर्शन को बढ़ाता है। ईएसएस, प्रत्येक स्टोरेज सेल पर स्थापित स्टोरेज मैनेजमेंट सर्वर, स्टोरेज सर्वर का प्रबंधन करता है और स्टोरेज से संबंधित किसी भी अनुरोध के लिए डेटाबेस सर्वर के साथ संचार करता है।
ईएसएस की मुख्य विशेषताएं
ईएसएस की प्रमुख विशेषताएं निम्नलिखित हैं:
-
फ़्लैश कैश :फ्लैश कैश सेल सर्वर पर एक उच्च-प्रदर्शन कैश है जो हाल ही में एक्सेस की गई वस्तुओं को कैश करता है।
-
फ़्लैश लॉग :फ्लैश लॉग रीडो-लॉग राइट्स के लिए एक उच्च-प्रदर्शन, कम-विलंबता, और विश्वसनीय अस्थायी स्टोर प्रदान करता है।
-
ईएचसीसी :एक्सडाटा हाइब्रिड कॉलमनर कंप्रेशन (ईएचसीसी) डेटा कंप्रेशन के उच्चतम स्तर को सक्षम बनाता है। EHCC डेटा को संपीड़न इकाइयों . नामक पंक्तियों के सेट में व्यवस्थित करता है . एक संपीड़न इकाई के भीतर, EHCC डेटा को कॉलम द्वारा व्यवस्थित करता है और फिर डेटा को संपीड़ित करता है।
-
संग्रहण अनुक्रमणिका :स्टोरेज इंडेक्स स्टोरेज सर्वर पर इन-मेमोरी स्ट्रक्चर होते हैं जिन्हें स्टोरेज सर्वर पर डिस्क से डेटा पढ़ने में लगने वाले समय को कम करने के लिए डिज़ाइन किया गया है।
-
सेल ऑफलोडिंग :पारंपरिक भंडारण डिजाइन के विपरीत, एक्सडाटा भंडारण कोशिकाओं को गणना या डेटाबेस नोड्स पर समग्र बोझ को कम करने के लिए आंतरिक रूप से कुछ कार्यभार को संसाधित करने के लिए डिज़ाइन किया गया है। इस प्रक्रिया को सेल ऑफलोडिंग कहा जाता है।
-
स्मार्ट स्कैन :स्मार्ट स्कैन अधिकांश SQL प्रोसेसिंग को डेटाबेस टियर के बजाय स्टोरेज टियर में होने देता है, जो नाटकीय रूप से क्वेरी प्रदर्शन में सुधार करता है। स्मार्ट स्कैन डेटाबेस को भेजे गए डेटा की मात्रा को कम करता है जिससे डेटाबेस नोड्स पर CPU उपयोग कम होता है।
SQL संसाधन
परंपरागत रूप से, SQL प्रसंस्करण केवल डेटाबेस सर्वर पर होता है। Exadata में, SQLप्रोसेसिंग को विभाजित किया जाता है और यह स्टोरेज टियर पर भी होता है।
परंपरा SQL संसाधन
निम्नलिखित चरणों में पारंपरिक SQL प्रसंस्करण शामिल है, जैसा कि निम्नलिखित आरेख में दिखाया गया है:
- क्लाइंट एक क्वेरी सबमिट करता है।
- यह क्रिया एक पूर्ण तालिका स्कैन को ट्रिगर करती है।
- डेटाबेस फ़ाइल और संबंधित विस्तार के लिए अनुरोध को मैप करता है, जिसमें तालिका स्कैन की जा रही है।
- एक पूर्ण स्कैन के समान, डेटाबेस सभी ब्लॉकों को पढ़ने के लिए I/O संचालन जारी करता है।
- टेबल के सभी क्वेरी किए गए ब्लॉक मेमोरी में पढ़े जाते हैं।
- प्रक्रिया विधेय को संतुष्ट करने वाली पंक्तियों के लिए ब्लॉक खोजती है।
- अंत में, अनुरोधित पंक्तियाँ क्लाइंट को वापस कर दी जाती हैं।
यदि यह एक बड़ी तालिका है, तो उस तालिका के सभी ब्लॉक पढ़े जाते हैं, स्टोरेज नेटवर्क में स्थानांतरित किए जाते हैं, और मेमोरी में कॉपी किए जाते हैं। अनुरोधित SQL ऑपरेशन को पूरा करने के लिए प्रक्रिया कई अवांछित पंक्तियों को मेमोरी में पढ़ती है। प्रेषित डेटा की बड़ी मात्रा बैंडविड्थ की खपत करती है, प्रतिक्रिया समय को प्रभावित करती है, और डेटाबेस स्तर पर एक अनावश्यक बोझ पैदा करती है।
Exadata सर्वर SQL संसाधन
एक्सडाटा स्टोरेज के साथ, एसक्यूएल प्रोसेसिंग को और अधिक कुशलता से संभाला जाता है क्योंकि यह एक्सडाटा स्टोरेज सॉफ्टवेयर का उपयोग करता है, जिसमें डेटाबेस लॉजिक बनाया गया है। निम्नलिखित चरणों में Exadata SQL प्रसंस्करण शामिल है, जैसा कि निम्नलिखित चित्र में दिखाया गया है:
- क्लाइंट एक क्वेरी सबमिट करता है।
- डेटाबेस सर्वर एक इंटेलिजेंट डेटाबेस (iDB) संदेश का निर्माण करता है, जिसमें क्वेरी मानदंड शामिल होता है। यह iDB संदेश रैक के सभी संग्रहण सर्वरों को जाता है।
- द सेल्सआरवी ईएसएस का घटक अनुरोध को पूरा करने वाली मिलान वाली पंक्तियों और स्तंभों की पहचान करने के लिए डेटा ब्लॉक को स्कैन करता है।
- हर स्टोरेज सर्वर समानांतर में क्वेरी मानदंड निष्पादित करता है और इंटरकनेक्ट का उपयोग करके डेटाबेस सर्वर को केवल प्रासंगिक पंक्तियां, या शुद्ध परिणाम भेजता है।
- डेटाबेस परिणाम को समेकित करता है और क्लाइंट को पंक्तियां लौटाता है।
स्मार्ट स्कैन आवश्यकताएं
स्मार्ट स्कैन का उपयोग करने के लिए निम्नलिखित आवश्यकताएं हैं:
- आप स्मार्ट स्कैन का उपयोग केवल पूर्ण तालिका स्कैन या पूर्ण अनुक्रमणिका स्कैन के लिए कर सकते हैं।
- प्रश्नों को प्रत्यक्ष-पथ पढ़ना चाहिए।
- आपको डेटाबेस आरंभीकरण पैरामीटर
CELL_OFFLOAD_PROCESSING
सेट करना होगा करने के लिएTRUE
। - आपको उन खंडों को डिस्क समूहों में सहेजना होगा जो पूरी तरह से Exadatacells पर संग्रहीत हैं।
- एएसएम डिस्क समूह जो खंड डेटा संग्रहीत करते हैं, उनमें निम्नलिखित विशेषता सेटिंग्स होनी चाहिए:-
compatible.rdbms
=11.2.0.0.0
(या बाद में)–compatible.asm
=11.2.0.0.0
(या बाद में)–cell.smart_scan_capable
=TRUE
स्मार्ट स्कैन उदाहरण
आँकड़ों पर स्मार्ट स्कैन प्रभाव को मापने के लिए, पहले स्मार्ट स्कैन सक्षम के साथ और फिर बिना निम्न चरणों को निष्पादित करें।
चरण 1:डेटाबेस से कनेक्ट करें
SQL*Plus के साथ अपने डेटाबेस से कनेक्ट करने के लिए निम्न कमांड चलाएँ:
[oracle@nd01db01 ~]$ sqlplus nd/nd
SQL*Plus: Release 11.2.0.3.0 Production...
चरण 2:आंकड़े सत्यापित करें
यह सत्यापित करने के लिए निम्न क्वेरी चलाएँ कि आँकड़े शून्य पर या उसके निकट हैं:
SQL> select a.name, b.value/1024/1024 MB from v$sysstat a, v$mystat b
where a.statistic# = b.statistic# and (a.name in ('physical read total bytes',
'physical write total bytes', 'cell IO uncompressed bytes')
or a.name like 'cell phy%');
NAME MB
--------------------------------------------------------------- ---
physical read total bytes 0
physical write total bytes 0
cell physical IO interconnect bytes 0
cell physical IO bytes saved during optimized file creation 0
cell physical IO bytes saved during optimized RMAN file restore 0
cell physical IO bytes eligible for predicate offload 0
cell physical IO bytes saved by storage index 0
cell physical IO bytes sent directly to DB node to balance CPU 0
cell physical IO interconnect bytes returned by smart scan 0
cell IO uncompressed bytes 0
10 rows selected.
चरण 3:स्मार्ट स्कैन अक्षम के साथ एक चुनिंदा क्वेरी निष्पादित करें
स्मार्ट स्कैन को निष्क्रिय करने वाले अनुकूलक संकेत के साथ निम्नलिखित चुनिंदा क्वेरी चलाएँ:
SQL> select /*+ OPT_PARAM('cell_offload_processing' 'false') */ count(*)
from sales where time_id between '01-JUN-2017' and '30-OCT-2017'
and amount_sold = 1;
COUNT(*)
----------
134055
चरण 4:आंकड़े फिर से सत्यापित करें
आँकड़ों को फिर से सत्यापित करने के लिए निम्न आदेश चलाएँ। ध्यान दें कि चरण 3 में क्वेरी द्वारा संसाधित किया गया सभी डेटा (भौतिक रीड टोटल बाइट्स) स्टोरेज नेटवर्क (सेल फिजिकल आईओ इंटरकनेक्ट बाइट्स) पर डेटाबेस सर्वर पर वापस आ जाता है।
SQL> select a.name, b.value/1024/1024 MB from v$sysstat a, v$mystat b
where a.statistic# = b.statistic# and (a.name in ('physical read total bytes',
'physical write total bytes', 'cell IO uncompressed bytes')
or a.name like 'cell phy%');
NAME MB
--------------------------------------------------------------- -----------
physical read total bytes 759.429688
physical write total bytes 0
cell physical IO interconnect bytes 759.429688
cell physical IO bytes saved during optimized file creation 0
cell physical IO bytes saved during optimized RMAN file restore 0
cell physical IO bytes eligible for predicate offload 0
cell physical IO bytes saved by storage index 0
cell physical IO bytes sent directly to DB node to balance CPU 0
cell physical IO interconnect bytes returned by smart scan 0
cell IO uncompressed bytes 0
10 rows selected.
चरण 5:आंकड़े रीसेट करें
सत्र-स्तर के आंकड़ों को रीसेट करने के लिए सत्र को डेटाबेस से पुन:कनेक्ट करने के लिए निम्न आदेश चलाएँ:
[oracle@nd01db01 ~]$ sqlplus nd/nd
SQL*Plus: Release 11.2.0.3.0 Production...
चरण 6:आंकड़े फिर से सत्यापित करें
यह सत्यापित करने के लिए निम्न क्वेरी चलाएँ कि आँकड़े शून्य पर या उसके निकट हैं:
SQL> select a.name, b.value/1024/1024 MB from v$sysstat a, v$mystat b
where a.statistic# = b.statistic# and (a.name in ('physical read total bytes',
'physical write total bytes', 'cell IO uncompressed bytes')
or a.name like 'cell phy%');
NAME MB
--------------------------------------------------------------- ---
physical read total bytes 0
physical write total bytes 0
cell physical IO interconnect bytes 0
cell physical IO bytes saved during optimized file creation 0
cell physical IO bytes saved during optimized RMAN file restore 0
cell physical IO bytes eligible for predicate offload 0
cell physical IO bytes saved by storage index 0
cell physical IO bytes sent directly to DB node to balance CPU 0
cell physical IO interconnect bytes returned by smart scan 0
cell IO uncompressed bytes 0
10 rows selected.
चरण 7:स्मार्ट स्कैन अक्षम किए बिना एक चयनित क्वेरी निष्पादित करें
स्मार्ट स्कैन को निष्क्रिय करने वाले अनुकूलक संकेत के बिना निम्नलिखित चुनिंदा क्वेरी चलाएँ:
SQL> select count(*) from sales where time_id between '01-JUN-2017'
and '30-OCT-2017'and amount_sold = 1;
COUNT(*)
-------
134055
चरण 8:आंकड़े सत्यापित करें
आँकड़ों को सत्यापित करने के लिए निम्न क्वेरी चलाएँ। ध्यान दें कि क्वेरी अभी भी लगभग 759 एमबी आई/ओ (भौतिक रीड टोटल बाइट्स) जैसा कि चरण 4 में है। हालांकि, इस बार डीबी सर्वर (सेल फिजिकल आईओइंटरकनेक्ट बाइट्स) को केवल 1.7 एमबी लौटाया जाता है। यह कार्रवाई में एक स्मार्ट स्कैन का परिणाम है। इस मामले में, स्मार्ट स्कैन इस क्वेरी से जुड़े I/O पर कार्य कर रहा है क्योंकि सेल फिजिकलआईओ बाइट्स जो प्रेडिकेट ऑफलोड के लिए योग्य हैं, भौतिक रीड टोटलबाइट्स के बराबर हैं, और सेल फिजिकल आईओ इंटरकनेक्ट बाइट्स स्मार्ट स्कैन द्वारा लौटाए गए सेल फिजिकल आईओ इंटरकनेक्ट बाइट्स के बराबर हैं। ।
SQL> select a.name, b.value/1024/1024 mb from v$sysstat a, v$mystat b where a.statistic# = b.statistic# and (a.name in ('physical read total bytes', 'physical write total bytes','cell IO uncompressed bytes') or a.name like 'cell phy%');
NAME MB
---------------------------------------------------------------- ----------
physical read total bytes 759.429688
physical write total bytes 0
cell physical IO interconnect bytes 1.71562805
cell physical IO bytes saved during optimized file creation 0
cell physical IO bytes saved during optimized RMAN file restore 0
cell physical IO bytes eligible for predicate offload 759.429688
cell physical IO bytes saved by storage index 0
cell physical IO bytes sent directly to DB node to balance CPU 0
cell physical IO interconnect bytes returned by smart scan 1.71562805
cell IO uncompressed bytes 759.429688
10 rows selected.
निष्कर्ष
Exadata में स्मार्ट स्कैन सुविधा क्वेरी प्रदर्शन को बेहतर बनाने के लिए SQL प्रोसेसिंग को डेटाबेस टियर के बजाय स्टोरेज टियर पर होने में सक्षम बनाती है। स्मार्टस्कैन डेटाबेस स्तर पर भेजे गए डेटा की मात्रा को कम करता है जिससे डेटाबेस नोड्स पर सीपीयू का उपयोग कम होता है।
कोई टिप्पणी करने या प्रश्न पूछने के लिए प्रतिक्रिया टैब का उपयोग करें।
हमारी डेटाबेस सेवाओं और रैकस्पेस एप्लिकेशन सेवाओं के बारे में अधिक जानें।