Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर:IF EXISTS किसी क्वेरी को व्यापक रूप से धीमा कर रहा है

क्या आपने मूल क्वेरी को TOP 1 के साथ चलाने का प्रयास किया था? सबसे अधिक संभावना है कि यह उतना ही धीमा होगा।

कभी-कभी जब ऑप्टिमाइज़र सोचता है कि कुछ बहुत संभव है और थोड़े प्रयास के साथ डेटा का एक विशाल सेट वापस करने जा रहा है (यानी लगभग सभी रिकॉर्ड वापस आने वाले हैं), तो यह ज्यादातर लूप जॉइन को चुनता है क्योंकि इसे केवल पहला और एक प्राप्त करने की आवश्यकता होती है। लूप जॉइन केवल कुछ रिकॉर्ड प्राप्त करने के लिए अच्छा है। जब यह सच नहीं हो जाता है, तो परिणाम प्राप्त करने में हमेशा के लिए और एक दिन लग जाता है।

आपके मामले में, ऐसा लगता है कि यह बहुत दुर्लभ है, इसलिए यह विकल्प बुरी तरह से आहत करता है। इसके बजाय कुछ ऐसा करने का प्रयास करें जैसे SELECT @count = COUNT(*) FROM ... और फिर यह जांचना कि क्या वह संख्या शून्य नहीं है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sql . में बड़े अक्षर वाले शब्दों को विभाजित करें

  2. SQL Server 2012 में LAST_VALUE अजीब परिणाम दे रहा है

  3. मैं लॉकिंग संकेतों का उपयोग कैसे करूं ताकि दो समानांतर प्रश्न गैर-प्रतिच्छेदन परिणाम लौटा सकें?

  4. जाँच करें कि SQL सर्वर (T-SQL) में डेटाबेस मेल में कितने मेल आइटम कतार में हैं

  5. पता लगाएं कि कौन से दृश्य (यदि कोई हैं) एक फ़ील्ड का उपयोग किया जाता है (निर्भरता का उपयोग करके?)