में एकाधिक पंक्तियों को सम्मिलित एकाधिक पंक्ति ओरेकल दो दृष्टिकोण में डालने के बारे में discussion में प्रदर्शन किया गया:ओरेकल
पहले:
insert into pager (PAG_ID,PAG_PARENT,PAG_NAME,PAG_ACTIVE)
select 8000,0,'Multi 8000',1 from dual
union all select 8001,0,'Multi 8001',1 from dual
दूसरा:
INSERT ALL
INTO t (col1, col2, col3) VALUES ('val1_1', 'val1_2', 'val1_3')
INTO t (col1, col2, col3) VALUES ('val2_1', 'val2_2', 'val2_3')
INTO t (col1, col2, col3) VALUES ('val3_1', 'val3_2', 'val3_3')
.
.
.
SELECT 1 FROM DUAL;
किसी को भी वरीयता का तर्क किया जा सका एक दूसरे का उपयोग करने के लिए?
पीएस मैंने खुद कोई शोध नहीं किया (यहां तक कि स्पष्टीकरण योजना), इसलिए किसी भी जानकारी या राय की सराहना की जाएगी।
धन्यवाद।
निष्कर्ष से सहमत हुए, लेकिन: नाइटपिक: इन आईएनएसईआरटी कथन किसी भी मूल्य को वापस नहीं करते हैं, इसलिए यह कहने के लिए अर्थहीन है कि "सम्मिलित होने से पहले" या "लाइन-बाय-लाइन" कुछ भी होता है। वैसे भी, वह यूनियन का उपयोग कर रहा है इसलिए इस तरह की कोई समस्या नहीं है, अगर आप यही सोच रहे थे। –
एक त्वरित "व्याख्या योजना" से पता चलता है कि INSERT सभी 4 लाइनों के साथ int SCOTT.EMP की लागत 2 (1 बहु-तालिका सम्मिलन केवल दोहरी चयन में सीपीयू-लागत के साथ होती है) जबकि यूनियन सभी संस्करणों की लागत होती है 8 (प्रत्येक चयन के साथ दूसरे 2)। यह क्रमबद्ध नहीं है लेकिन परिणामों के संयोजन और एकल (कम से कम फास्ट ड्यूल) चुनता है जो लागत पैदा कर रहा है। – Kosi2801