2012-05-02 14 views
6

मैं इस तरह एक एसक्यूएल की है। मेरा सवाल डालने या चयन या दोनों समानांतर करना है? निम्नलिखित एसक्यूएल देखें, क्या आप मुझे बता सकते हैं कि कौन सा सही है या किसके पास सबसे अच्छा प्रदर्शन है। मेरे पास डीबीए अनुमति नहीं है, इसलिए मैं इसकी निष्पादन योजना की जांच नहीं कर सकता।ओरेकल समानांतर डालने प्रदर्शन के बारे में

1) Insert /*+ parallel(A 6) */ into A select * from B;

2) Insert into A select/*+ parallel(B 6) */ * from B;

3) Insert /*+ parallel(A 6) */ into A select /*+ parallel(B 6) */ * from B;

धन्यवाद!

+0

समानांतर शायद वैसे भी इस स्थिति में आप मदद नहीं करेगा। आईओ को बाधा बनने वाली है क्योंकि वहां थोड़ी प्रोसेसिंग की आवश्यकता है (जब तक कि आप सरलीकृत नहीं हो जाते)। 'INSERT/* + APPEND */....' देखें, यदि यह एक विकल्प है – Phil

+0

@ फिल समानांतर निष्पादन आईओ में काफी सुधार कर सकता है। –

उत्तर

12

INSERT और SELECT दोनों समानांतर करना सबसे तेज़ है।

आप निश्चित रूप से यह अपने आप को परीक्षण करने के लिए चाहता हूँ, विशेष रूप से के इष्टतम डिग्री खोजने के लिए (आप डेटा की एक बड़ी राशि के लिए पर्याप्त है, तो आप एक सभ्य सर्वर, सब कुछ sanely, कॉन्फ़िगर किया गया है आदि) समानांतरवाद। ओरेकल समांतर निष्पादन के आस-पास कई मिथक हैं, और यहां तक ​​कि मैनुअल कभी-कभी horribly wrong होता है।

11gR2 पर, मैं सिफारिश करेंगे तो आप इस तरह अपने बयान चलाएँ:

alter session enable parallel dml; 
insert /*+ append parallel(6) */ into A select * from B; 
  1. तुम हमेशा पहले समानांतर dml सक्षम करना चाहते हैं।
  2. parallel(6)statement-level parallelism का उपयोग करता है, वस्तु-स्तरीय समानांतरवाद के बजाय। यह एक 11 जीआर 2 फीचर है जो आपको ऑब्जेक्ट उपनाम या एक्सेस विधियों के बारे में चिंता करने के लिए समांतर बुद्धिमान में आसानी से सब कुछ चलाने की अनुमति देता है। 10 जी के लिए आपको एकाधिक संकेतों का उपयोग करना होगा।
  3. आम तौर पर append संकेत आवश्यक नहीं है। यदि आपका डीएमएल समानांतर में चलता है, तो यह स्वचालित रूप से प्रत्यक्ष-पथ आवेषण का उपयोग करेगा। हालांकि, अपने बयान धारावाहिक में डाउनग्रेड कर दिया हो जाता है, उदाहरण के लिए अगर कोई समानांतर सर्वर उपलब्ध तो append संकेत एक बड़ा फर्क कर सकते हैं कर रहे हैं।
+2

टिप्पण लायक है कि समानांतर डालने, या सीधे पथ धारावाहिक डालने (संलग्न), एक विशेष (या नामित विभाजन जिसमें डालने जगह लेता है) मेज पर ताला लग जाते हैं। –

1

आप एक समझाने योजना को चलाने के लिए डीबीए विशेषाधिकार जरूरत नहीं है। मेरा मानना ​​है कि SELECT_CATALOG सही विशेषाधिकार है।

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