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

SQL में डिलीट स्टेटमेंट बहुत धीमा है

वे चीज़ें जो किसी डिलीट को धीमा कर सकती हैं:

  • बहुत सारे रिकॉर्ड हटाना
  • कई अनुक्रमणिका
  • चाइल्ड टेबल में विदेशी चाबियों पर गायब इंडेक्स। (टिप्पणियों में इसका उल्लेख करने के लिए @CesarAlvaradoDiaz को धन्यवाद)
  • गतिरोध और अवरोधन
  • ट्रिगर
  • कैस्केड डिलीट (वे दस पैरेंट रिकॉर्ड जिन्हें आप डिलीट कर रहे हैं, मतलब लाखों चाइल्ड रिकॉर्ड्स डिलीट हो सकते हैं)
  • लेन-देन लॉग बढ़ने की जरूरत है
  • जांच करने के लिए कई विदेशी कुंजी

तो आपकी पसंद यह पता लगाना है कि क्या अवरुद्ध है और इसे ठीक करें या हटाए गए घंटों में चलाएं जब वे सामान्य उत्पादन भार में हस्तक्षेप नहीं करेंगे। आप डिलीट को बैचों में चला सकते हैं (उपयोगी यदि आपके पास ट्रिगर, कैस्केड डिलीट, या बड़ी संख्या में रिकॉर्ड हैं)। आप इंडेक्स को छोड़ सकते हैं और फिर से बना सकते हैं (सबसे अच्छा अगर आप इसे ऑफ घंटों में भी कर सकते हैं)।



  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 सर्वर पर ट्रिगर में INSERT के मानों को कैसे संपादित कर सकता हूं?

  2. क्या EXISTS को सीधे बिट के रूप में चुनना संभव है?

  3. ऑटोइनक्रिकमेंट वाले कॉलम के लिए स्टार्ट वैल्यू सेट करें

  4. नौकरी निर्यात करते समय SQL सर्वर द्वारा उत्पन्न अजीब स्क्रिप्ट

  5. पंक्तियों से अल्पविराम सीमांकित स्ट्रिंग प्राप्त करें