LINQ से SQL के परिणाम सेट के बाइट्स में आकार कैसे निर्धारित करें

मैन्युअल एसक्यूएल लिखते समय एक क्वेरी द्वारा लौटाए गए डेटा के आकार और आकार का अनुमान लगाने में काफी आसान होता है। मुझे LINQ से SQL क्वेरीज़ के साथ ऐसा करना मुश्किल हो रहा है। कभी-कभी मुझे अपेक्षा से अधिक डेटा मिल जाता है - जो वास्तव में एक दूरस्थ क्लाइंट को धीमा कर सकता है जो सीधे डेटाबेस तक पहुंच रहा है।

मैं एक क्वेरी चलाने में सक्षम होना चाहता हूं और फिर बताएं कि तार में कितना डेटा वापस कर दिया गया है, और इसे अनुकूलित करने में मेरी सहायता के लिए इसका उपयोग करें।

मैंने डेटाकॉन्टेक्स्ट.लोग विधि का उपयोग कर पहले से ही एक लॉग को जोड़ दिया है, लेकिन यह मुझे केवल एसक्यूएल का संकेत देता है, न कि प्राप्त डेटा।

कोई सुझाव?

0

3 उत्तर

नोट: यदि आपके पास मौजूदा डेटा कॉन्टेक्स्ट है तो आपको कनेक्शन को SQL सर्वर कनेक्शन में डालना होगा

 ((SqlConnection)dc.Connection).StatisticsEnabled = true;

फिर आंकड़ों को पुनः प्राप्त करें:

 ((SqlConnection)dc.Connection).RetrieveStatistics()
0
जोड़ा

ऐसा लगता है कि आप अपने DataContext के SqlConnection को पकड़ सकते हैं और आंकड़े चालू कर सकते हैं।

आंकड़ों में से एक है "बाइट लौटा"।

एमएसडीएन संदर्भ लिंक

0
जोड़ा

मुझे DataContext के SqlConnection को पकड़ने का कोई तरीका नहीं मिला, इसलिए मैंने मैन्युअल रूप से SqlConnection बनाया:

SqlConnection sqlConnection = new SqlConnection("your_connection_string");
// enable statistics
cn.StatisticsEnabled = true;

// create your DataContext with the SqlConnection
NorthWindDataContext nwContext = new NorthWindDataContext(sqlConnection);

var products = from product in nwContext
               where product.Category.CategoryName = "Beverages"
               select product;
foreach (var product in products)
{
    //do something with product
}

// retrieve statistics - for keys see http://msdn.microsoft.com/en-us/library/7h2ahss8(VS.80).aspx
string bytesSent = sqlConnection.RetrieveStatistics()["BytesSent"].ToString();
string bytesReceived = sqlConnection.RetrieveStatistics()["BytesReceived"].ToString();
0
जोड़ा