मैं एक मानक कोड की तलाश कर रहा हूं जिसे मैं उस प्रक्रिया में चिपका सकूं जो खरीद के लिए सभी मापदंडों के माध्यम से लूप कर सके और वर्तमान मूल्यों को पुनः प्राप्त कर सके--
आप नीचे दी गई क्वेरी का उपयोग करके एसपी के लिए सभी मान पास करवा सकते हैं
उदाहरण:
मेरे पास नीचे संग्रहीत खरीद है जो मुझे बिक्री विवरण देता है (केवल डेमो के लिए)
alter proc dbo.getsales
(
@salesid int
)
as
begin
select
* from sales where [email protected]
end
मैंने अपने एसपी को नीचे की तरह कॉल किया है..
exec dbo.getsales 4
अब अगर मैं वैल्यू पास करना चाहता हूं, तो मैं नीचे दी गई क्वेरी का उपयोग कर सकता हूं
select top 10* from sys.dm_exec_cached_plans cp
cross apply
sys.dm_exec_text_query_plan(cp.plan_handle,default,default)
where objtype='proc'
जिसने मुझे संकलन समय मूल्य के रूप में नीचे दिखाया:
इसके साथ ही, विचार करने के लिए कई चीजें हैं..हम इस मान को प्राप्त करने के लिए एक्सएमएल विधियों का उपयोग कर सकते हैं
अब क्या होता है, अगर मैं 2 के मूल्य के लिए फिर से वही संग्रहित खरीद चलाता हूं ..
<ColumnReference Column="@salesid" ParameterCompiledValue="(4)" ParameterRuntimeValue="(2)" />
यहां एक महत्वपूर्ण पकड़ है, उपरोक्त मान तब दिखाए जाते हैं जब मैंने ssms से दिखाने के लिए निष्पादन योजना का चयन किया था।
लेकिन कैशे में वैल्यू क्या होगी, इसे फिर से प्लान कैशे क्वेरी का उपयोग करके देखें
<ColumnReference Column="@salesid" ParameterCompiledValue="(4)"/>
यह अभी भी संकलित मूल्य दिखा रहा है, साथ ही 5-- के रूप में कॉलम का उपयोग करें - जिसका अर्थ है कि इस योजना का 5 बार उपयोग किया गया है और योजना शुरू में संकलित होने पर पारित किया गया पैरामीटर 4 है, जिसका अर्थ यह भी है, रन टाइम मान कैश में संग्रहीत नहीं हैं योजना विवरण..
तो संक्षेप में, आप संग्रहीत खरीद को रनटाइम मान पास कर सकते हैं
- 1. स्टेटमेंट संकलित करते समय पास किए गए मान (
आप समय के साथ इस जानकारी को इकट्ठा करना शुरू कर सकते हैं और उन्हें संग्रहीत खरीद के खिलाफ लॉग इन कर सकते हैं, मुझे लगता है कि सर्वर रीबूट के साथ समय के साथ, पुनर्संयोजन की योजना बनाएं आप नया सेट प्राप्त कर सकते हैं पैरामीटर मानों का) - 2. DEV टीम से संपर्क करना भी एक अच्छा तरीका है, क्योंकि वे आपको उन मापदंडों की कुल सूची दे सकते हैं जिन्हें पारित किया जा सकता है, यदि यह अभ्यास कठिन है