यदि आप 10g या बाद के संस्करण का उपयोग कर रहे हैं, तो आप MULTISET UNION ऑपरेटर का उपयोग करके CONCAT () फ़ंक्शन को थोड़ा अधिक कुशल बना सकते हैं:
FUNCTION concat (
iList1 IN ID_ARRAY,
iList2 IN ID_ARRAY
)
RETURN ID_ARRAY IS
lConcat ID_ARRAY;
BEGIN
lConcat := iList1
MULTISET UNION
iList2 A
;
RETURN lConcat;
END concat;
आप कई अलग-अलग सरणियों को पॉप्युलेट करके और फिर उन सभी के लिए एक बार MULTISET UNION को कॉल करके चीजों को और अधिक कुशल बना सकते हैं:
lConcat := iList1
MULTISET UNION
iList2
MULTISET UNION
iList3
MULTISET UNION
iList4;
डायनेमिक SQL का उपयोग करना - संभवतः विभिन्न get_idsN()
. को बदलने के लिए कार्य - जांच के लायक एक दृष्टिकोण हो सकता है, लेकिन बेहतर प्रदर्शन के रास्ते में शायद आपको बहुत कुछ नहीं देगा।
अस्थायी तालिकाएँ एक अच्छा विचार नहीं हैं, क्योंकि वे स्मृति में काम करने की तुलना में बहुत खराब प्रदर्शन करती हैं।