चूंकि आप LIKE '%abc%'
. का उपयोग कर रहे हैं , अद्यतन विवरण के लिए एक पूर्ण तालिका स्कैन की आवश्यकता होगी। उस स्थिति में, दो कथनों के संयोजन से समग्र प्रदर्शन में सुधार होगा। हालांकि, आपके सुझाव में, हर एक पंक्ति को अपडेट किया जाता है और उनमें से अधिकांश को बिना बदले अपडेट किया जाता है (कॉलम 1 मान को कॉलम 1 मान से बदल दिया जाता है)।
आप यह सुनिश्चित करना चाहते हैं कि आप WHERE
. रखें खंड ताकि केवल उन पंक्तियों को बदल दिया जाए जिन्हें वास्तव में परिवर्तन की आवश्यकता है। डिस्क पर यह अनावश्यक लेखन यह जाँचने की तुलना में धीमा है कि क्या पंक्ति मापदंड से मेल खाती है।
यह करें:
UPDATE table1
SET column1 =
CASE
WHEN column1 LIKE '%abc%' THEN REPLACE(column1, 'abc', 'abc1')
WHEN column1 LIKE '%def%' THEN REPLACE(column1, 'def', 'def1')
END
WHERE column1 LIKE '%abc%' OR column1 LIKE '%def%';