यदि ऐसा कुछ है तो आपको नियमित आधार पर करना होगा, पहली पसंद डेटाबेस डिज़ाइन में सुधार करने की कोशिश करनी चाहिए (प्राथमिक कुंजी की तलाश करना, "जुड़ने" की स्थिति को कुछ हद तक प्राप्त करने की कोशिश करना कॉलम जितना संभव हो)।
यदि यह संभव नहीं है, तो दूसरा दूसरा विकल्प प्रत्येक कॉलम की "चयनशीलता" को समझना है (यानी प्रत्येक कॉलम में कितने "अलग" मान हैं, 'नाम' 'पते' से अधिक चुनिंदा होगा 'नर/मादा' से देश ')। बयान मेरा सुझाव था के सामान्य प्रकार इस तरह होगा:
Delete from tableA
where exists (select * from tableB
where tableA.colx1 = tableB.colx1
and tableA.colx2 = tableB.colx2
etc. and tableA.colx10 = tableB.colx10).
विचार चयनात्मकता के क्रम में स्तंभों की सूची और colx1 पर एक सूचकांक का निर्माण करना है tableB पर, colx2 आदि। टेबलबी में कॉलम की सटीक संख्या कुछ परीक्षण & माप का परिणाम होगी। (हटाए गए कथन के बेहतर समय के साथ तालिका बी पर इंडेक्स बनाने के लिए समय ऑफसेट करें।)
यदि यह सिर्फ एक बार ऑपरेशन है, तो मैं ऊपर उल्लिखित धीमी विधियों में से एक चुनूंगा। यह संभवतः इस बारे में बहुत कुछ सोचने के प्रयास के लायक नहीं है जब आप घर जाने से पहले केवल एक बयान शुरू कर सकते हैं ...
एक अंतर्निहित निकालने का उपयोग कर शायद 0 तेज हो जाएगा – HLGEM
मेरा समाधान एक डेवलपर समाधान है। एक फैंसीपैंट डीबीए समाधान नहीं है। :- डी लेकिन मुझे और एसक्यूएल सीखना पसंद है। –
किसी भी तालिका में कोई आईडी कॉलम नहीं ... – Thorsten