हम एक ओआरएम का उपयोग कर रहे हैं जो .NET से SQL सर्वर की sp_executesql संग्रहीत प्रक्रिया से कॉल निष्पादित कर रहा है।एसक्यूएल क्वेरी .NET कोड से धीमी है, लेकिन इंटरैक्टिव रूप से
जब संग्रहीत प्रो .NET से कहा जाता है, तो हमें टाइमआउट अपवाद मिलता है।
प्रोफाइलर को देखते हुए, मैं देख सकता हूं कि क्वेरी वास्तव में निष्पादित करने में काफी समय ले रही है। तब भी वह अच्छे कार्यान्वित अगर मैं कॉपी और क्वेरी कि SQL प्रबंधन स्टूडियो में बाहर समय है पेस्ट करें और इसे सहभागी निष्पादित:
क्वेरी अनिवार्य है:
exec sp_executesql N'SELECT DISTINCT
FROM [OurDatabase].[dbo].[Contract] [LPLA_1]) [LPA_L1]
LEFT JOIN [OurDatabase].[dbo].[Customer] [LPA_L2] ON [LPA_L2].[Customer_ID]=[LPA_L1].[CustomerId] AND [LPA_L2].[Data]=[LPA_L1].[Data])
WHERE ((((([LPA_L1].[DealerId] = @DealerId1))
AND ([LPA_L2].[Last_Name] = @LastName2))))',N'@DealerId1 varchar(18),@LastName2 varchar(25)',@DealerId1='1234',@LastName2='SMITH'
मेरे लिए भ्रामक हिस्सा यह है।
क्या किसी को पता है कि .NET कोड के माध्यम से निष्पादित होने पर एक ही क्वेरी में काफी समय क्यों लगेगा? (मैं इसे पुन: उत्पन्न करने में सक्षम हूं - कोड से निष्पादित क्वेरी लगातार बार-बार होती है, और क्वेरी निष्पादित रूप से निष्पादित रूप से ठीक से काम करती है।)
किसी भी मदद की सराहना की जाती है। धन्यवाद!
आप कितने डेटा लौट रहे हैं? यदि हजारों और हजारों लाइनें हैं तो परिणामस्वरूप कंप्यूटर पर वायर को धक्का देने में समय लग सकता है। – Miles
क्या क्वेरी बहुत सारे डेटा लौटाती है? क्या प्रोग्राम केस में शामिल सर्वर और क्लाइंट के बीच कोई डेटा भेज रहा है जो इंटरैक्टिव मोड में नहीं होता है? हमारे परीक्षण मामले में – quosoo
तीन। इसके अलावा, डीलरिड और लास्ट_नाम में इंडेक्स हैं। –