2013-02-01 46 views
8

के माध्यम से एज़ूर क्वेरी में पास पैरामीटर देखें, मैं एक एज़ूर डेटाबेस से पूछताछ करने के लिए इकाई से linq का उपयोग कर रहा हूं। मैंने एक प्रश्न को देखने के लिए लॉग इन किया है जो एक विशेष समस्या दे रहा है। मैं वास्तव में पारित पैरामीटर देखना चाहता हूं, लेकिन सभी एज़ूर मुझे नीचे देता है। क्वेरी पहले से चलने के बाद पैरामीटर देखने का कोई तरीका है (उदाहरण के लिए कोड को बदलने के लिए कोड बदलना इस समय एक विकल्प नहीं है)।लिंक से इकाई फ्रेमवर्क

जब मैं एज़ूर में लॉग इन करता हूं प्रबंधन पोर्टल पर जाता है - एसक्यूएल डाटाबेस | प्रश्न प्रदर्शन | विशेष क्वेरी का चयन करें। मैं निम्नलिखित देख सकता हूं: समस्या यह है कि मैं नहीं देख सकता कि पैरामीटर में क्या पारित किया गया है उदा। @p_ linq _19। मैं केवल पैरामीटर प्लेसहोल्डर देख रहा हूं।

SELECT TOP (150) 
[Project1].[AlertIdentifier] AS [AlertIdentifier] 
FROM (SELECT 
[Extent1].[AlertIdentifier] AS [AlertIdentifier], 
[Extent1].[TimeReceived] AS [TimeReceived] 
FROM [dbo].[SecurityAlert] AS [Extent1] 
WHERE (2 <> [Extent1].[AlertStatusID]) AND ((convert(datetime2, '0001-01-01 00:00:00.0000000', 121) = @p__linq__0) OR ([Extent1].[DateScanned] >= @p__linq__1)) AND ((N'' = @p__linq__2) OR ([Extent1].[BettingShopIdentifier] LIKE @p__linq__3 ESCAPE N'~')) AND ((convert(datetime2, '0001-01-01 00:00:00.0000000', 121) = @p__linq__4) OR ([Extent1].[DateScanned] <= @p__linq__5)) AND ((cast(0 as float(53)) = @p__linq__6) OR (CAST([Extent1].[SlipStake] AS float) >= @p__linq__7)) AND ((@p__linq__8 < 1) OR ([Extent1].[SlipStatusID] = @p__linq__9)) AND ((cast(0 as float(53)) = @p__linq__10) OR (CAST([Extent1].[SlipPayoutActual] AS float) >= @p__linq__11) OR (CAST([Extent1].[SlipPayoutCalculated] AS float) >= @p__linq__12) OR (CAST([Extent1].[SlipPotentialReturn] AS float) >= @p__linq__13)) AND ((N'' = @p__linq__14) OR ([Extent1].[AlertSummary] LIKE @p__linq__15 ESCAPE N'~')) AND ((N'' = @p__linq__16) OR ([Extent1].[StaffScannedByUsername] LIKE @p__linq__17 ESCAPE N'~') OR ([Extent1].[StaffPayoutUsername] LIKE @p__linq__18 ESCAPE N'~') OR ([Extent1].[StaffEditedByUsername] LIKE @p__linq__19 ESCAPE N'~')) 
) AS [Project1] 
ORDER BY [Project1].[TimeReceived] ASC 
+0

आपको यह परिणाम कैसे मिला, आपने किस प्रश्न का प्रदर्शन किया? – astaykov

+0

@astaykov, एज़ुर पोर्टल में लॉग इन, प्रबंधन पोर्टल - एसक्यूएल डाटाबेस | प्रश्न प्रदर्शन | विशेष क्वेरी का चयन करें। समस्या यह है कि मैं नहीं देख सकता कि उन पैरामीटर में क्या पारित किया गया है। – DermFrench

+0

क्या आप वाकई पास किए गए पैरामीटर को नहीं देखते हैं? ऐसा लगता है कि आप पूरी क्वेरी देख रहे हैं जिसमें अजीब नामों जैसे @ p__linq__0 या तो पैरा शामिल होना चाहिए। –

उत्तर

0

आप प्रशासन पोर्टल में क्वेरी प्रदर्शन की जांच कर सकते हैं। Here is link how to do it.

आप प्रबंधन स्टूडियो के माध्यम से एज़ूर डेटाबेस से भी कनेक्ट कर सकते हैं। Here is a link how to do it. वहां आप क्वेरी प्लान की जांच कर सकते हैं और मैन्युअल रूप से अपनी क्वेरी का आह्वान कर सकते हैं।

+0

आप SQL Azure के साथ वास्तव में SQL सर्वर प्रोफाइलर नहीं कर सकते हैं। इसके अलावा आपके द्वारा प्रदान की गई सब कुछ 'इतिहास' के आधार पर निदान है और 'वास्तविक समय निगरानी' नहीं है जैसे SQL सर्वर प्रोफाइलर करता है। और आपका लिंक बिल्कुल नहीं है 'आप एसक्यूएल प्रोफाइलर से कनेक्ट कर सकते हैं'। यह सिर्फ एसक्यूएल एज़ूर का निदान और डीबग करने के लिए है - वास्तव में बहुत मूल्यवान है, लेकिन 'एसक्यूएल सर्वर प्रोफाइलर' का उपयोग नहीं कर रहा है – astaykov

1

मैं मिनीप्रोफाइलर विकल्प के लिए जाऊंगा। आप इसे यहां डाउनलोड कर सकते हैं: http://miniprofiler.com/ और इसे अपने SQL कनेक्शन प्रोफाइल करने के लिए कॉन्फ़िगर करें।

बेशक आप इसे उत्पादन के लिए चालू नहीं करेंगे। आप या तो डीबग/स्टेजिंग परिदृश्यों के लिए हो सकते हैं, या केवल एक विशिष्ट व्यवस्थापक उपयोगकर्ता लॉग इन होने पर प्रोफाइलर को कॉन्फ़िगर कर सकते हैं।

1

एक प्रभावी तरीका, हालांकि कुछ कॉन्फ़िगरेशन कार्य की आवश्यकता है, पर ट्रेसिंग सेट करना है इकाई फ्रेमवर्क स्तर। इस तरह आप आवेदन स्तर पर निष्पादित सभी SQL कथन लॉग कर सकते हैं।

मैं Community Entity Framework Provider Wrappers का उपयोग करने का सुझाव देता हूं, जो NuGet package के रूप में भी उपलब्ध है।

यह 2011 से है लेकिन आप this answer में this forum thread में एंटीटी फ्रेमवर्क के नवीनतम संस्करणों के साथ इसका उपयोग करने के निर्देश प्राप्त कर सकते हैं।

पिछले संस्करण से original blog post है जो बताता है कि यह रैपर कैसे काम करता है।

एक और विकल्प MiniProfiler का उपयोग कर रहा है, suggested by amhed के रूप में।