CACHESTORE_SQLCP Sql योजनाएँ कुछ दिनों के बाद 38 GB तक बढ़ जाती हैं।
हम पहले से ही "तदर्थ वर्कलोड के लिए अनुकूलन" विकल्प पर चल रहे हैं। (एंटिटी फ्रेमवर्क और कस्टम रिपोर्टिंग बहुत सारे विज्ञापन होक्स बनाता है!)
बहु-AZ मिररिंग के साथ AWS RDS पर SQL Server 2016 SE 3.00.2164.0.v1
जब मैं चलता हूं:
DBCC FREESYSTEMCACHE('SQL Plans');
या
DBCC FREEPROCCACHE
या
DBCC FREESYSTEMCACHE ('SQL Plans') WITH MARK_IN_USE_FOR_REMOVAL
या
DBCC FREESYSTEMCACHE ('ALL') WITH MARK_IN_USE_FOR_REMOVAL;
यह स्पष्ट नहीं लगता है:
SELECT TOP 1 type, name, pages_kb FROM sys.dm_os_memory_clerks ORDER BY pages_kb desc
type name pages_kb
CACHESTORE_SQLCP SQL Plans 38321048
मैं क्वेरी स्टोर सक्षम के साथ चल रहा था, लेकिन मैंने इसे यह देखने के लिए अक्षम कर दिया कि क्या कुछ भी हस्तक्षेप कर रहा है, यह मदद करने के लिए नहीं लगता था, लेकिन मैंने इसे छोड़ दिया।
क्या सच में अजीब भी है
SELECT COUNT(*) FROM sys.dm_exec_cached_plans
1-3 या तो (यह केवल वर्तमान में चल रहे प्रश्नों को दिखाने के लिए लगता है), भले ही मैं कुछ भी साफ़ करने का प्रयास करने से पहले ही वह सभी मेमोरी आरक्षित हो। मुझे किसकी याद आ रही है?
CACHESTORE_SQLCP सभी उपलब्ध मेमोरी का 60% से अधिक ले रहा है, जो एक चिंता का विषय है क्योंकि कभी-कभी मेमोरी वेट हो रहे हैं। इसके अलावा, हमें सप्ताहांत पर एक नियमित DBCC CHECKDB को मारना था जो 4 घंटे तक चल रहा था क्योंकि अपर्याप्त मेमोरी इंतजार कर रही थी (यह PHYSICAL_ONLY पर कोई त्रुटियों के साथ तुरंत पूरा हुआ)।
क्या इस मेमोरी को पुनः प्राप्त करने का कोई तरीका है (रात में रिबूट के अलावा?)!
टिप्पणियों / उत्तरों से अपडेट करें
जब मैं दौड़ता हूं
SELECT * FROM sys.fn_my_permissions(NULL,NULL)
मुझे मिला
entity_name subentity_name permission_name
server CONNECT SQL
server CREATE ANY DATABASE
server ALTER ANY LOGIN
server ALTER ANY LINKED SERVER
server ALTER ANY CONNECTION
server ALTER TRACE
server VIEW ANY DATABASE
server VIEW ANY DEFINITION
server VIEW SERVER STATE
server ALTER SERVER STATE
server CREATE SERVER ROLE
server ALTER ANY SERVER ROLE
जिसमें आवश्यक ALTER SERVER STATE
अनुमति शामिल है।
का आउटपुट DBCC FREEPROCCACHE
है
DBCC निष्पादन पूरा। यदि डीबीसीसी ने त्रुटि का संदेश मुद्रित किया हैं, तो अपने सिस्टम व्यवस्थापक से संपर्क करें।
जो मानक संदेश है। अन्य DBCC फ़ंक्शंस जो RDS अनुमतियों के बारे में त्रुटि संदेश देने का समर्थन नहीं करते हैं।
(एक दिन बाद और फिर से चलने के बाद, SQL प्लान अभी भी 38,321,280 kb है)
टिप्पणियों / उत्तरों से अपडेट करें
SELECT pool_id, name, cache_memory_kb, compile_memory_kb FROM sys.dm_resource_governor_resource_pools
आउटपुट:
pool_id name cache_memory_kb compile_memory_kb
1 internal 38368408 1168080
DBCC FREEPROCCACHE ('internal')
कुछ अलग नहीं करता
अपडेट करें
SQL त्रुटि लॉग हर बार निम्न लॉग करता है:
2017-10-19 14:26:47.22 spid85 SQL Server has encountered 1 occurrence(s) of cachestore flush for the 'Object Plans' cachestore (part of plan cache) due to 'DBCC FREEPROCCACHE' or 'DBCC FREESYSTEMCACHE' operations.
2017-10-19 14:26:47.22 spid85 SQL Server has encountered 1 occurrence(s) of cachestore flush for the 'SQL Plans' cachestore (part of plan cache) due to 'DBCC FREEPROCCACHE' or 'DBCC FREESYSTEMCACHE' operations.
2017-10-19 14:26:47.22 spid85 SQL Server has encountered 1 occurrence(s) of cachestore flush for the 'Bound Trees' cachestore (part of plan cache) due to 'DBCC FREEPROCCACHE' or 'DBCC FREESYSTEMCACHE' operations.
अपडेट करें
RDS पर 13.00.2164.0.v1 से 13.00.4422.0.v1 पर एक इंजन संस्करण अपग्रेड उपलब्ध है। हालाँकि यह ऑटो-माइनर-वर्जन अपग्रेड पर सेट है, लेकिन यह हमें नवीनतम के लिए अपडेट रखने के लिए नहीं लगता है। रिबूट और स्थापित करेगा कि इस सप्ताह के अंत में देखने के लिए कि क्या यह मदद करता है।