डिफ़ॉल्ट एसक्यूएल सर्वर तक पूरे स्मृति अगर अनकैप्ड खपत और सभी स्मृति उपलब्ध उपयोग करता है जब capped.This Normal.You यह भी सुनिश्चित करना SQLServer बॉक्स पर केवल आवेदन (जो सिफारिश की है) और also try to cap memory as per best practices है होगा।
मैं शीर्ष स्मृति लेने वाली प्रश्नों खोजने दृष्टिकोण नीचे का उपयोग कर
1.Start का निवारण करने के लिए और देखने अगर मैं क्वेरी ..memory उपभोक्ता प्रश्नों की स्मृति उपयोग को कम कर सकते हैं क्वेरी के नीचे पाया जा सकता हैं।
SELECT TOP 10 SUBSTRING(qt.TEXT, (qs.statement_start_offset/2)+1,
((CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(qt.TEXT)
ELSE qs.statement_end_offset
END - qs.statement_start_offset)/2)+1),
qs.execution_count,
qs.total_logical_reads, qs.last_logical_reads,
qs.total_logical_writes, qs.last_logical_writes,
qs.total_worker_time,
qs.last_worker_time,
qs.total_elapsed_time/1000000 total_elapsed_time_in_S,
qs.last_elapsed_time/1000000 last_elapsed_time_in_S,
qs.last_execution_time,
qp.query_plan
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp
ORDER BY qs.total_logical_reads DESC -- logical reads
-- ORDER BY qs.total_logical_writes DESC -- logical writes
-- ORDER BY qs.total_worker_time DESC -- CPU time
अब कि आप उच्च स्मृति के कारण प्रश्नों पाया, तो आप उन्हें ट्यून करने के लिए यदि आप स्मृति उपयोग को कम कर सकते हैं देखने के लिए की जरूरत है।
पूर्व: क्वेरी कई एक अनुपयुक्त सूचकांक की वजह से पढ़ता है या अपने आईओ उपकरण हो सकता है एक मुद्दा है जिसकी वजह से बफर पूल कई बार
2.You भी शीर्ष घटक है कि का उपयोग पा सकते हैं प्लावित हो रही है है कर रहे होंगे स्मृति, जो आप कैसे रैम
SELECT TOP(20) [type], [name], SUM(single_pages_kb) AS [SPA Mem, Kb]
FROM sys.dm_os_memory_clerks
GROUP BY [type], [name]
ORDER BY SUM(single_pages_kb) DESC;
बफर पूल लगातार अधिक स्मृति का उपयोग करता है, तो खर्च किया जाता है की समझ देता है, मुझे लगता है कि के बारे में चिंता नहीं करता, लेकिन अगर यह cachestore_obcp है।तो आप कैश की दुकान जो बुरा जांच के
एक हिस्सा एक और की ओर जाता है है भरने कई एड-हॉक क्वेरी हो सकने वाली है, तो आप सुराग के आधार पर समस्याओं का निवारण करने के रूप में कोई एक क्लिक के समाधान
होगा साइड नोट: अनुशंसित नहीं:
हमारे देव उदाहरणों में से एक को एक ही समस्या का सामना करना पड़ता था, इसलिए सभी ट्यूनिंग सामग्री करने के बजाय, हम नीचे दिए गए कमांड को चलाने के लिए उपयोग करते थे जो तुरंत मेमोरी को तुरंत रिलीज़ करता था .. लेकिन यह बिल्कुल नहीं है उत्पादन उदाहरण के लिए अनुशंसित, क्योंकि यह फ्लैश कैश में संग्रहीत योजनाओं का उपयोग करता है और आपको थोड़ा सीपीयू दबाव
का सामना करना पड़ सकता है
DBCC FREEPROCCACHE WITH NO_INFOMSGS;
संदर्भ:
मुझे एक ही समस्या थी, लेकिन पाया गया कि समाधान (कुछ हद तक विचित्र रूप से) टोपी को बहुत कम सेट करना था। यह सच है कि एसक्यूएल सर्वर सिर्फ अपने लिए उतनी ही मेमोरी ले लेगा क्योंकि इसे अनुमति है और इसे रिलीज़ नहीं किया गया है। यदि सीमा बहुत अधिक है, तो अंततः सर्वर के अन्य कार्यों को स्मृति से भूखा हो जाता है, और पूरे सिस्टम को स्वैपिंग रखना पड़ता है, जो SQL सर्वर –
सहित सब कुछ धीमा कर देता है आपके डेटाबेस का आकार क्या है? क्या आपने मैन्युअल रूप से किसी भी उच्च मेमोरी खपत के लिए अपने कार्यों, प्रक्रियाओं की जांच की है? – user4221591
@ जोनाथन विल्ककॉक, यही कारण है कि एसक्यूएल सर्वर को एक समर्पित मशीन (वर्चुअल या फिजिकल, कोई फर्क नहीं पड़ता) पर स्थापित किया जाना चाहिए, सर्वर के चलाने के लिए न्यूनतम आवश्यक न्यूनतम सिवाय इसके अलावा कुछ और मौजूद नहीं है। –