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

SQL क्वेरी .NET एप्लिकेशन में धीमी है लेकिन SQL सर्वर प्रबंधन स्टूडियो में तात्कालिक है

मेरे अनुभव में सामान्य कारण है कि एसएसएमएस में एक क्वेरी तेजी से चलती है लेकिन .NET से धीमी है कनेक्शन के SET में अंतर के कारण है -टिंग्स। जब कोई कनेक्शन SSMS या SqlConnection द्वारा खोला जाता है , SET . का एक गुच्छा निष्पादन वातावरण स्थापित करने के लिए आदेश स्वचालित रूप से जारी किए जाते हैं। दुर्भाग्य से SSMS और SqlConnection अलग SET . है डिफ़ॉल्ट।

एक सामान्य अंतर है SET ARITHABORT . SET ARITHABORT ON जारी करने का प्रयास करें आपके .NET कोड से पहली कमांड के रूप में।

SQL Profiler का उपयोग मॉनिटर करने के लिए किया जा सकता है कि कौन सा SET आदेश SSMS और .NET दोनों द्वारा जारी किए जाते हैं ताकि आप अन्य अंतर ढूंढ सकें।

निम्न कोड दर्शाता है कि कैसे एक SET जारी किया जाए आदेश लेकिन ध्यान दें कि इस कोड का परीक्षण नहीं किया गया है।

using (SqlConnection conn = new SqlConnection("<CONNECTION_STRING>")) {
    conn.Open();

    using (SqlCommand comm = new SqlCommand("SET ARITHABORT ON", conn)) {
        comm.ExecuteNonQuery();
    }

    // Do your own stuff here but you must use the same connection object
    // The SET command applies to the connection. Any other connections will not
    // be affected, nor will any new connections opened. If you want this applied
    // to every connection, you must do it every time one is opened.
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PIVOT में 0 आउटपुट के साथ (null) मानों को कैसे बदलें?

  2. SQL में पहले 2 विशेष वर्ण के बीच वर्ण प्राप्त करें

  3. SQL सर्वर में डायनामिक पिवट टेबल

  4. SQL सर्वर में ट्रिगर इवेंट प्रकारों को सूचीबद्ध करने के लिए sys.trigger_event_types का उपयोग करें

  5. अरबों पंक्तियों के लिए सर्वश्रेष्ठ डेटा स्टोर