FIX: कोई संग्रहीत कार्यविधि के लिए क्वेरी योजना संग्रहीत कार्यविधि ब्लॉब चर का उपयोग करता है, और चर एक स्ट्रिंग फ़ंक्शन Microsoft SQL Server 2008 में या Microsoft SQL Server 2008 R2 में उपयोग किया जाता है तो कैश किया गया नहीं

लागू: SQL Server 2008SQL Server 2008 R2

Microsoft Microsoft SQL Server 2008 वितरित करता है और एक डाउनलोड करने योग्य फ़ाइल के रूप में Microsoft SQL Server 2008 R2 ठीक करता है। फ़िक्सेस संचयी होते हैं, क्योंकि सभी हॉटफिक्सेस हर नई जारी है और जो पिछले SQL Server 2008 या SQL Server 2008 R2 के साथ शामिल थे सभी सुरक्षा फ़िक्सेस रिलीज़ ठीक करें।

लक्षण


इस परिदृश्य पर विचार करें:
  • यदि आप कोई संग्रहीत कार्यविधि Microsoft SQL Server 2008 में या Microsoft SQL Server 2008 R2 बनाएँ।
  • संग्रहीत कार्यविधि चर बायनेरी बड़ी ऑब्जेक्ट (ब्लॉब) का उपयोग करता है।
  • एक स्ट्रिंग फ़ंक्शन में ब्लॉब चर का उपयोग किया है।
  • आप संग्रहीत कार्यविधि निष्पादित करें।
इस परिदृश्य में, संग्रहीत कार्यविधि के लिए क्वेरी योजना कैश्ड नहीं है।

समाधान


संचयी अद्यतन जानकारी

SQL Server 2008 सर्विस पैक 1

इस समस्या के लिए फिक्स पहले SQL Server 2008 सर्विस पैक 1 के लिए संचयी अद्यतन 10 में रिलीज़ किया गया था। इस संचयी अद्यतन पैकेज़ के बारे में अधिक जानकारी के लिए Microsoft नॉलेज़ बेस में आलेख देखने के लिए निम्न आलेख संख्या पर क्लिक करें:
2279604 SQL Server 2008 सर्विस पैक 1 के लिए संचयी अद्यतन पैकेज़ 10
नोट बनाता है संचयी होते हैं, क्योंकि सभी हॉटफिक्सेस हर नई सुधार जारी है और जो पिछले SQL Server 2008 के साथ शामिल थे सभी सुरक्षा फ़िक्सेस रिलीज़ ठीक करें। Microsoft अनुशंसा करता है कि करने पर आप विचार करें जिसमें ये हॉटफिक्स शामिल नवीनतम फिक्स रिलीज़ लागू कर रहा है। अधिक जानकारी के लिए Microsoft नॉलेज़ बेस में आलेख देखने के लिए निम्न आलेख संख्या पर क्लिक करें:
970365 SQL Server 2008 जो SQL Server 2008 सर्विस पैक 1 रिलीज़ किया गया था के बाद रिलीज़ किया गया था बनाता है
Microsoft SQL Server 2008 हॉटफिक्सेस विशिष्ट SQL Server सर्विस पैक के लिए बनाए जाते हैं। आप किसी SQL Server 2008 सर्विस पैक 1 की स्थापना करने के लिए कोई SQL Server 2008 सर्विस पैक 1 हॉटफिक्स लागू करना चाहिए। डिफ़ॉल्ट रूप से, किसी SQL Server सर्विस पैक में प्रदान की गई किसी भी हॉटफिक्स अगले SQL Server सर्विस पैक में शामिल है।

SQL Server 2008 सर्विस पैक 2

इस समस्या के लिए फिक्स पहले संचयी अद्यतन 1 में SQL Server 2008 सर्विस पैक 2 के लिए रिलीज़ किया गया था। इस संचयी अद्यतन पैकेज़ के बारे में अधिक जानकारी के लिए Microsoft नॉलेज़ बेस में आलेख देखने के लिए निम्न आलेख संख्या पर क्लिक करें:
2289254 SQL Server 2008 सर्विस पैक 2 के लिए संचयी अद्यतन 1
नोट बनाता है संचयी होते हैं, क्योंकि सभी हॉटफिक्सेस हर नई सुधार जारी है और जो पिछले SQL Server 2008 के साथ शामिल थे सभी सुरक्षा फ़िक्सेस रिलीज़ ठीक करें। हम अनुशंसा करते हैं कि करने पर आप विचार करें जिसमें ये हॉटफिक्स शामिल नवीनतम फिक्स रिलीज़ लागू कर रहा है। अधिक जानकारी के लिए Microsoft नॉलेज़ बेस में आलेख देखने के लिए निम्न आलेख संख्या पर क्लिक करें:
2402659 SQL Server 2008 जो SQL Server 2008 सर्विस पैक 2 के रिलीज़ किया गया था के बाद रिलीज़ किया गया था बनाता है

SQL Server 2008 R2

इस समस्या के लिए फिक्स पहले संचयी अद्यतन 4 में रिलीज़ किया गया था। इस संचयी अद्यतन पैकेज़ SQL Server 2008 R2 के लिए प्राप्त करने के तरीके के बारे में अधिक जानकारी के लिए Microsoft नॉलेज़ बेस में आलेख देखने के लिए निम्न आलेख संख्या पर क्लिक करें:
2345451 संचयी अद्यतन पैकेज़ 4 SQL Server 2008 R2 के लिए
नोट बनाता है संचयी होते हैं, क्योंकि सभी हॉटफिक्सेस हर नई सुधार जारी है और जो पिछले SQL Server 2008 R2 के साथ शामिल थे सभी सुरक्षा फ़िक्सेस रिलीज़ ठीक करें। हम अनुशंसा करते हैं कि करने पर आप विचार करें जिसमें ये हॉटफिक्स शामिल नवीनतम फिक्स रिलीज़ लागू कर रहा है। अधिक जानकारी के लिए Microsoft नॉलेज़ बेस में आलेख देखने के लिए निम्न आलेख संख्या पर क्लिक करें:
981356 SQL Server 2008 R2 जो SQL सर्वर 2008 R2 रिलीज़ किया गया था के बाद रिलीज़ किया गया था बनाता है

स्थिति


Microsoft ने पुष्टि की है कि यह "इन पर लागू" खण्ड में सूचीबद्ध Microsoft उत्पादों में एक समस्या है.

अधिक जानकारी


इस समस्या को पुन: उत्पन्न करने के लिए, निम्न चरणों का पालन करें:
  1. निम्न कोड को चलाने दो बनाने के लिए कार्यविधियाँ ("p_test1" और "p_test2") संग्रहीत है। "P_test1" ब्लॉब चर का उपयोग करता है, और "p_test2" एक nvarchar(100) चर का उपयोग करता है।
    use tempdbgoif OBJECT_ID('p_test1') is not null drop proc p_test1if OBJECT_ID('p_test2') is not null drop proc p_test2gocreate proc p_test1@s nvarchar(max)asbeginselect * from sys.objects where name = UPPER(@s)endgocreate proc p_test2@s nvarchar(100)asbeginselect * from sys.objects where name = UPPER(@s)endgo 
  2. और दोनों को निष्पादित करने के लिए कार्यविधियों संग्रहीत कार्यविधि कैश साफ़ करने के लिए निम्न कोड चलाएँ:
    dbcc freeproccachegoexec p_test1 N'abc'exec p_test2 N'abc'go 
  3. कैश्ड योजना की जाँच करने के लिए निम्न कोड चलाएँ:
    select object_name(CONVERT(int, a.value)), cp.*from sys.dm_exec_cached_plans cpcross apply sys.dm_exec_plan_attributes(cp.plan_handle) awhere cp.objtype = 'Proc'and a.attribute = 'objectid' 
नोट यदि Microsoft SQL Server 2008 या किसी Microsoft SQL Server 2008 R2 आवृत्ति पर संग्रहीत कार्यविधि का इस प्रकार के कई समसामयिक executions हैं, तो अनुभव हो सकने आवृत्ति पर संकलन अवरोध के कारण होता है जो ब्लॉक कर रहा है। SQL सर्वर ब्लॉकिंग द्वारा संकलन अवरोध के कारण का विवरण के बारे में अधिक जानकारी के लिए, निम्न Microsoft नॉलेज बेस आलेख देखें:
263889 SQL सर्वर ब्लॉकिंग द्वारा संकलन अवरोध के कारण का विवरण

संदर्भ


स्ट्रिंग फ़ंक्शन (Transact-SQL) के बारे में अधिक जानकारी के लिए, निम्न Microsoft वेब साइट पर जाएँ:अधिक जानकारी के लिए वृद्धिशील चलाने मॉडल SQL सर्वर के लिए, Microsoft नॉलेज़ बेस में आलेख देखने के लिए निम्न आलेख संख्या पर क्लिक करें:
935897 एक वृद्धिशील चलाने मॉडल हॉटफिक्सेस रिपोर्ट की गई समस्याओं के लिए वितरित करने के लिए SQL Server टीम से उपलब्ध नहीं है
SQL सर्वर अद्यतनों के लिए नामकरण स्कीमा के बारे में अधिक जानकारी के लिए Microsoft नॉलेज़ बेस में आलेख देखने के लिए निम्न आलेख संख्या पर क्लिक करें:
822499Microsoft SQL सर्वर सॉफ़्टवेयर अद्यतन पैकेज़ों के लिए नया नामकरण स्कीमा
सॉफ़्टवेयर अद्यतन शब्दों के बारे में अधिक जानकारी के लिए Microsoft नॉलेज़ बेस में आलेख देखने के लिए निम्न आलेख संख्या पर क्लिक करें:
824684 Microsoft सॉफ़्टवेयर अद्यतनों का विवरण देने में प्रयुक्त होने वाले मानक शब्दों का विवरण