मेरे पास SQL सर्वर में एक एसपी है जो एक मिनट में सैकड़ों बार चलता है, और डेटाबेस के विरुद्ध आने वाले ट्रैफ़िक की जांच करने की आवश्यकता होती है। फिलहाल यहजो तेजी से है, INSERT से पहले या उसके बाद EXISTS?
INSERT INTO table
SELECT @value1,@value2 WHERE NOT EXISTS
(SELECT * FROM table WHERE value1 = @value1 AND value2 = @value2);
हालांकि निम्नलिखित करता है, मैं भी
IF NOT EXISTS(SELECT * FROM table WHERE value1 = @value1 AND value2 = @value2)
INSERT INTO table (value1,value2) VALUES (@value1,@value2);
कौन सा तेजी से किया जाएगा साथ जा सकते हैं? मुझे लगता है कि उनके बीच बहुत अंतर नहीं है लेकिन मैं ऐतिहासिक रूप से टीएसक्यूएल पर बहुत अच्छा नहीं हूं ... =/
अपडेट: हूप्स ... यह कहना है कि EXISTS 1 से अधिक मान का उपयोग करता है या नहीं रिकॉर्ड मौजूद है, इसलिए एक अनूठी बाधा काम नहीं करेगी। नमूना को प्रतिबिंबित करने के लिए संपादित किया गया है ...
http://stackoverflow.com/questions/2276023/t-sql-insert-or-update –
@carlos: यह वास्तव में एक अलग सवाल है, हालांकि कुछ हद तक संबंधित है। –
आपका दूसरा विकल्प बस सुरक्षित नहीं है। 'IF' और' INSERT' कथन के बीच एक समवर्ती 'INSERT' हो सकता है। – Quassnoi