मैं ADO.NET का उपयोग कर नीचे क्वेरी निष्पादित कर रहा हूं। इसे निष्पादित करने में लगभग 60 के दशक लगते हैं। उसी समय जब मैं SQL सर्वर प्रबंधन स्टूडियो में क्वेरी चलाता हूं, तो इसमें केवल 1 सेकंड लगता है। इतना बड़ा अंतर क्यों है और मैं प्रदर्शन में सुधार कैसे कर सकता हूं?
मैंने संग्रहीत प्रक्रिया की भी कोशिश की। इसमें भी लगभग 60 का समय लग रहा है।
SqlCommand sc = new SqlCommand(@"
BEGIN TRAN
BEGIN TRY
DELETE FROM [dbo].[Table1]
WHERE ID = @Id ; -- nearly 600 records
DELETE FROM [dbo].[Table2]
WHERE ID = @Id ; -- nearly 6500 records
DELETE FROM [dbo].[Table3]
WHERE ID = @Id; -- 1 record
COMMIT TRAN
END TRY
BEGIN CATCH
ROLLBACK TRAN
THROW
END CATCH
");
1 उत्तर
मैंने नीचे यह कोशिश की। यह पैरामीटर सूँघने के कारण हो रहा है। इस समस्या को दूर करने के लिए 4 तरीके हैं
- विकल्प (पुनः संकलित)
- विकल्प (के लिए अनुकूलित करें (@VARIABLE=VALUE))
- विकल्प (के लिए अनुकूलित करें (@VARIABLE UNKNOWN))
- स्थानीय चर का प्रयोग करें
नीचे मैंने इस समस्या को ठीक करने के लिए चौथी विधि का उपयोग किया है। संदर्भित
SqlCommand sc = new SqlCommand(@"
BEGIN TRAN
BEGIN TRY
Declare @Id int = @PId ; -- passing the parameter only here
DELETE FROM [dbo].[Table1]
WHERE ID = @Id ; -- nearly 600 records
DELETE FROM [dbo].[Table2]
WHERE ID = @Id ; -- nearly 6500 records
DELETE FROM [dbo].[Table3]
WHERE ID = @Id; -- 1 record
COMMIT TRAN
END TRY
BEGIN CATCH
ROLLBACK TRAN
THROW
END CATCH
");
बेहतर उत्तर देने के लिए सभी का धन्यवाद
संबंधित सवाल
नए सवाल
c#
C # (उच्चारण "तेज देखें") Microsoft द्वारा विकसित एक उच्च स्तरीय, सांख्यिकीय रूप से टाइप किया हुआ, बहु-प्रतिमान प्रोग्रामिंग भाषा है। C # कोड आमतौर पर Microsoft के .NET परिवार के टूल और रन-टाइम को लक्षित करता है, जिसमें .NET फ्रेमवर्क, .NET कोर और Xamarin अन्य शामिल हैं। C # या C # के औपचारिक विनिर्देश में लिखे गए कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें।