2013-02-06 11 views
5

कुछ पृष्ठभूमि: मैं SSMS 2012 के भीतर इस स्मृति अपवाद का सामना कर रहा है के बाद से यह जारी किया गया था (यह अपवाद कभी नहीं में होता है लाल गेट के SQLPrompt के साथ मिलकर मेरी एक ही लैपटॉप पर एसएसएमएस 2008R2)।SSMS 2012 System.OutOfMemoryException (क्लाइंट साइड) और SQL शीघ्र (डिबग जानकारी सहित)

मैं मूल रूप से इन अपवादों दैनिक (SSMS2012 और SQLPrompt) जो मुझे मजबूर करता बंद कर दें और (सब कुछ मैं पर काम कर रहा था के साथ) SSMS फिर से खोलना का सामना किया गया था। महीने पहले मैंने एक समर्थन धागे पर ठोकर खाई जिसने संभावित ऐड-ऑन को कारण बताया क्योंकि अनइंस्टॉल किया गया मेरा एकमात्र ऐड-ऑन (एसक्यूएल प्रॉम्प्ट, लेकिन बाकी डेवलपर के बंडल को अनइंस्टॉल नहीं किया गया) और बिना एक अपवाद बहुत कम सिस्टम। OutOfMemoryException अपवाद।

एक बार एसपी 1 2012 के लिए जारी किया गया था, मैंने इसे लागू किया और एसक्यूएल प्रॉम्प्ट को फिर से स्थापित किया (यह देखने के लिए कि क्या समस्या हो सकती है और विकास के समय के 7 घंटे के भीतर मुझे कुख्यात सिस्टम के साथ दोबारा बधाई दी गई थी। OutOfMemoryException।

इस सब के माध्यम से मैं लाल गेट के साथ टिकट खोल रहा हूं और डीबग लॉग सबमिट कर रहा हूं जहां वे अपवाद देखते हैं लेकिन चूंकि स्मृति अपवाद स्पष्ट रूप से SQLPrompt को सूचीबद्ध नहीं करता है, इसलिए वे इस मुद्दे को विकास टीम को आगे नहीं बढ़ाएंगे। इस विशिष्ट अपवाद एसक्यूएल लेकिन कहने के लिए प्रेरित करने से पहले SSMS 2012 आईडीई (दृश्य स्टूडियो 2010) के भीतर कई अपवाद फेंक रहा है (कुछ नीचे सूचीबद्ध)। मुझे विश्वास है कि स्मृति अपवाद एसक्यूएल शीघ्र संचित डेटा प्रबंधन करता है कि कैसे के साथ एक समस्या का लक्षण है और जो अंततः एक परिणाम के रूप में एक अपवाद फेंकता SSMS के लिए उपलब्ध स्मृति को खाता है।

मैं सीखना इस मुद्दे और यह कैसे पुन: पेश करने को स्थगित करने के लिए कैसे और इसे सीधे दो चर से संबंधित है है:

  1. कनेक्ट और SSMS में कई उदाहरण (वस्तु एक्सप्लोरर और क्वेरी विंडोज़) पर काम कर रहा। अर्थात। 7 मामलों से जुड़े हुए 2-3 घंटे के भीतर अपवाद को हटा दिया।
  2. रिटर्निंग परिणाम कई उदाहरण से तय करता है। इसमें आईडीई में जानकारी वापस करने के लिए एसएसएमएस द्वारा उपयोग किए जाने वाले प्रश्न शामिल हैं और परिणाम व्यक्तिगत क्वेरी विंडो में लौटाए गए हैं।

जितना अधिक उदाहरण मैं तेजी से अपवाद से जुड़ा हूं, अपवाद उठाया जाता है जो मुझे एसक्यूएल प्रॉम्प्ट की प्रति घटनाओं की सभी ऑब्जेक्ट जानकारी कैशिंग करता है। एक बार मेमोरी अपवाद उठाए जाने के बाद स्थिति एसएसएमएस पूरी तरह से दुर्घटनाग्रस्त हो जाती है (जब तक कि मैं इसे पहले बंद नहीं करता)।

क्या मैं के बाद कर रहा हूँ कैसे इस समस्या को दूर करने के लिए लाल गेट को प्रस्तुत करने के लिए और अधिक/बेहतर जानकारी एकत्र करने के लिए है। यह वह जगह है जहां मुझे आपकी मदद चाहिए।

लैपटॉप: हिमाचल प्रदेश अभिजात वर्ग पुस्तक 8440 रैम: 6GB

वर्तमान OS:

System.ArgumentOutOfRangeException "Specified argument was out of the range of valid values." 

Microsoft.VisualStudio.Text.Implementation.BinaryStringRebuilder.GetLineNumberFromPosition(N/A,N/A) 
Microsoft.VisualStudio.Text.Implementation.TextSnapshot.GetLineFromPosition(Microsoft.VisualStudio.Text.Implementation.TextSnapshot,N/A) 
Microsoft.VisualStudio.Editor.Implementation.VsTextBufferAdapter.GetLineIndexOfPosition(N/A,System.Int32,System.Int32&,System.Int32&) 
RedGate.SQLPrompt.CommonVS.Editor.VSScriptProvider.PositionFromIndex(RedGate.SQLPrompt.CommonVS.Editor.VSScriptProvider,System.Int32) 
RedGate.SqlPrompt.Metadata.Script.ScriptProviderBase.GetText(RedGate.SQLPrompt.CommonVS.Editor.VSScriptProvider,System.Int32,System.Int32) 
RedGate.SqlPrompt.Engine.NewEngine.SqlPromptEngine.GetCandidates(RedGate.SqlPrompt.Engine.NewEngine.SqlPromptEngine,System.Int32) 
RedGate.SqlPrompt.Engine.PromptEngineEmulator.get_GetSuggestions(RedGate.SqlPrompt.Engine.PromptEngineEmulator) 
RedGate.SqlPrompt.Engine.AutoCompleter.m_FilterChanged(RedGate.SqlPrompt.Engine.AutoCompleter,RedGate.SqlPrompt.Engine.PromptEngineEmulator,System.EventArgs) 
RedGate.SqlPrompt.Engine.PromptEngineEmulator.OnFilterChanged(RedGate.SqlPrompt.Engine.PromptEngineEmulator) 
RedGate.SqlPrompt.Engine.PromptEngineEmulator.set_Index(RedGate.SqlPrompt.Engine.PromptEngineEmulator,System.Int32) 
RedGate.SqlPrompt.Engine.PromptEngineEmulator.set_CaretPosition(RedGate.SqlPrompt.Engine.PromptEngineEmulator,N/A) 
RedGate.SQLPrompt.CommonUI.Editor.EditorWindowBase.SetEngineCaretPosition(RedGate.SQLPrompt.SSMSUI.SSMSEditorWindow,N/A) 
RedGate.SQLPrompt.CommonUI.Editor.EditorWindowBase.UpdateUIPrompts(RedGate.SQLPrompt.SSMSUI.SSMSEditorWindow) 
RedGate.SQLPrompt.CommonVS.Editor.VSEditorWindow.OnTextViewCommandExec(RedGate.SQLPrompt.SSMSUI.SSMSEditorWindow,RedGate.SQLPrompt.CommonVS.Editor.TextViewMonitor,RedGate.SQLPrompt.CommonVS.Editor.CommandExecEventArgs) 
RedGate.SQLPrompt.CommonVS.Editor.TextViewMonitor.AfterCommandExecute(RedGate.SQLPrompt.CommonVS.Editor.TextViewMonitor,RedGate.SQLPrompt.CommonVS.Editor.CommandExecEventArgs) 
RedGate.SQLPrompt.CommonVS.Editor.TextViewMonitor..(RedGate.SQLPrompt.CommonVS.Editor.TextViewMonitor.) 
RedGate.SQLPrompt.CommonUI.Utils.ErrorDialog.Do(System.Action) 
RedGate.SQLPrompt.CommonVS.Editor.TextViewMonitor.(RedGate.SQLPrompt.CommonVS.Editor.TextViewMonitor,System.Guid&,System.Uint32,System.Uint32,System.IntPtr,System.IntPtr) 
RedGate.SQLPrompt.CommonVS.Editor.TextViewMonitor..(RedGate.SQLPrompt.CommonVS.Editor.TextViewMonitor.,System.Guid&,System.Uint32,System.Uint32,System.IntPtr,System.IntPtr) 
Microsoft.VisualStudio.Editor.Implementation.CommandChainNode.Exec(N/A,N/A,N/A,N/A,N/A,N/A) 

System.ArgumentException 00:05:14.7510000 "The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))" 

#mMc.#JQub.#OQub(#mMc.#JQub,N/A,System.Uint32,#mMc.#k3ub&) 
#mMc.#JQub.#z26.#8Di(#mMc.#JQub.#z26) 
RedGate.SQLSourceControl.Engine.SmartAssembly.ExceptionReporting.ErrorReporterBase.Do(RedGate.SQLSourceControl.CommonUI.Forms.ErrorDialog,System.Action,System.Predicate`1<System.Exception>,System.Boolean) 
RedGate.SQLSourceControl.Engine.SmartAssembly.ExceptionReporting.ErrorReporterBase.Do(RedGate.SQLSourceControl.CommonUI.Forms.ErrorDialog,System.Action) 
RedGate.SQLSourceControl.CommonUI.Forms.ErrorDialog.Do(System.Action) 

और यहाँ: 7 विन उद्यम एड Sp1

यहाँ एसक्यूएल शीघ्र की वजह से अपवादों में से कुछ हैं मेमोरी अपवाद है:

Exception thrown in result set

System.OutOfMemoryException <null> 

System.Text.StringBuilder.set_Capacity(System.Text.StringBuilder,N/A) 
Microsoft.SqlServer.Management.QueryExecution.QEDiskStorageView.set_MaxNumBytesToDisplay(N/A,N/A) 
Microsoft.SqlServer.Management.QueryExecution.QEDiskDataStorage.GetStorageView(N/A) 
Microsoft.SqlServer.Management.QueryExecution.QEResultSet.StartRetrievingData(Microsoft.SqlServer.Management.QueryExecution.QEResultSet,System.Int32,N/A) 
Microsoft.SqlServer.Management.QueryExecution.ResultSetAndGridContainer.StartRetrievingData(N/A,N/A,N/A) 
Microsoft.SqlServer.Management.QueryExecution.ResultsToGridBatchConsumer.OnNewResultSet(Microsoft.SqlServer.Management.QueryExecution.ResultsToGridBatchConsumer,N/A,N/A) 
Microsoft.SqlServer.Management.QueryExecution.QESQLBatch.ProcessResultSet(Microsoft.SqlServer.Management.QueryExecution.QESQLBatch,N/A) 
Microsoft.SqlServer.Management.QueryExecution.QESQLBatch.DoBatchExecution(Microsoft.SqlServer.Management.QueryExecution.QESQLBatch,System.Data.SqlClient.SqlConnection,N/A) 
Microsoft.SqlServer.Management.QueryExecution.QESQLBatch.Execute(N/A,N/A,N/A) 
Microsoft.SqlServer.Management.QueryExecution.QEOLESQLExec.DoBatchExecution(Microsoft.SqlServer.Management.QueryExecution.QEOLESQLExec,Microsoft.SqlServer.Management.QueryExecution.QESQLBatch) 
Microsoft.SqlServer.Management.QueryExecution.QESQLExec.ExecuteBatchCommon(Microsoft.SqlServer.Management.QueryExecution.QEOLESQLExec,N/A,N/A,System.Boolean&) 
Microsoft.SqlServer.Management.QueryExecution.QEOLESQLExec.ExecuteBatchHelper(N/A,N/A,N/A,N/A) 
Microsoft.SqlServer.Management.QueryExecution.QEOLESQLExec.ProcessBatch(N/A,N/A,N/A) 
.BatchParser.ThunkCommandExecuter.ProcessBatch(N/A,N/A,N/A) 

फिर से, स्पष्ट होना, मैं नहीं जानता कि यदि अन्य अपवाद से संबंधित हैं या नहीं लेकिन स्मृति अपवाद केवल एसक्यूएल शीघ्र स्थापित के साथ होता है है।

आपकी सहायता के लिए धन्यवाद!

+0

[रेडगेट फ़ोरम] (http://www.red-gate.com/messageboard/index.php) – Andomar

+1

के लिए बेहतर अनुकूल हो सकता है मेरे लिए यह मंच लाल गेट फ़ोरम का एक सुपर-सेट है, इसलिए मैं ' डी यहां उन्नत सहायता प्राप्त करने का एक बेहतर मौका खड़ा है। इसके अलावा, मैं बिना किसी संकल्प के कई महीनों के लिए रेड गेट समर्थन से निपट रहा हूं। – artofsql

+0

2012 एसएसएमएस के उपयोग के रूप में Redgate के SQLPrompt के साथ विभाग में फैल रहा है तो यह अपवाद है। एक पीयर डीबी डेवलपर जो एसक्यूएमएस 2012 का उपयोग एसक्यूएमएस 2012 के साथ स्विच करने के लिए स्विच कर रहा है अब क्रैश हो रहा है। – artofsql

उत्तर

-1

क्या आप इस पोस्ट में वर्णित कॉलम की संख्या सीमित करने का प्रयास कर सकते हैं और देख सकते हैं कि यह मदद करता है या नहीं? http://redgate.uservoice.com/forums/94413-sql-prompt-feature-suggestions/suggestions/1364757-disable-sql-prompt-on-certain-databases

+0

मैंने अतीत में कैशिंग को सीमित और अक्षम करने का प्रयास किया है लेकिन अपवाद तब नहीं रुक गए। – artofsql

+0

इस सुझाव के साथ एक और समस्या यह है कि मैं कभी नहीं जानता कि डेटाबेस और सर्वर मैं इस पर काम करने के लिए किस तरह काम कर रहा हूं, मुझे इस सेटिंग को लगातार प्रबंधित करना होगा। एक उपकरण के लिए एक पेशेवर डेटाबेस उपकरण बेचा जाता है, जब यह वास्तविक डेटाबेस पेशेवर द्वारा उपयोग किया जाता है जब यह एसएसएमएस लगातार क्रैश हो रहा है। – artofsql

0

मेरे लिए क्या काम करता है SQL प्रॉम्प्ट में कोड सुझाव अक्षम करना है, तो मैं एक ही क्वेरी चला सकता हूं और फिर परिणाम प्राप्त कर सकता हूं। मैं फिर SQL प्रॉम्प्ट में कोड सुझाव सक्षम कर सकता हूं और त्रुटि थोड़ी देर के लिए दूर रहती है।

0

इस बिंदु Redgate अंत में इस मुद्दे को स्वीकार किया है पर कि SQL शीघ्र प्लग में 32-बिट SSMS ग्राहक के साथ प्रक्रिया में काम कर रहा है और अंत में स्मृति आउट-ऑफ-स्मृति अपवाद है, जिसके परिणामस्वरूप chokes है।

इसके लिए एक फिक्स के लिए उनकी प्रतिक्रिया एक वर्ष में "शायद" होगी या फिर, जब आप वार्षिक समर्थन के लिए भुगतान कर रहे हों, तो चेहरे में एक थप्पड़ है। मैंने इस मुद्दे पर 2 मौजूदा टूल-बेल्ट लाइसेंसों के लिए और समर्थन के लिए भुगतान करने से इंकार कर दिया है, एक मुद्दा जो मैंने 2012 से लड़ा है, जब तक वे इसे सही नहीं करते। यदि यह आपको प्रभावित कर रहा है, और यदि आप कर सकते हैं, तो वही करें और अपने वॉलेट से वोट दें ताकि उन्हें यह तय करने के लिए प्रेरित किया जा सके कि यह एक उच्च प्राथमिकता है।

यदि और वह दिन आता है तो मैं इस उत्तर पोस्ट को SQL प्रॉम्प्ट के सही निर्माण की संस्करण जानकारी के साथ अद्यतन करूंगा जो अब SSMS.exe की 32-बिट मेमोरी स्पेस के भीतर संचालित नहीं होता है।

संबंधित मुद्दे