मापने की योजना बेदखली


9

हमारे पास SQL ​​Server 2016 SP1 अधिकतम मेमोरी के साथ 24GB पर सेट है।
इस सर्वर में संकलन की संख्या अधिक है, इनमें से केवल 10% संकलन ऐड-हॉक क्वेरी से हैं। इसलिए नई संकलित योजनाओं को योजना कैश में संग्रहीत किया जाना चाहिए लेकिन योजना कैश का आकार नहीं बढ़ रहा है (लगभग 3.72GB)।

मुझे संदेह है कि स्थानीय मेमोरी दबाव है जो कैश से योजनाओं को हटाने का कारण बनता है। प्लान कैश प्रेशर लिमिट 5GB है। (0-4 जीबी से दृश्यमान लक्ष्य स्मृति का 75% + 4 जीबी -64 जीबी से दृश्यमान लक्ष्य स्मृति का 10% + दृश्यमान लक्ष्य मेमोरी का 5%> 64 जीबी)। जब एक cachestore दबाव सीमा का 75% तक पहुंच जाता है, तो योजनाओं को कैश से हटा दिया जाना चाहिए। मेरे मामले में 5 जीबी का 75% 3.75GB है। तो यह प्रशंसनीय है यह उच्च संकलन का कारण है।

क्या कैश से बाहर की योजनाओं को हटाने (परफ्यूम, एक्सटेंडेड इवेंट्स, ...) को मापने का कोई तरीका है? तो मैं कुछ स्थानीय स्मृति दबाव हो सकता है वास्तव में उच्च संकलन का कारण है?

जवाबों:


9

उसके लिए XEvent है:

query_cache_removal_statistics

तब होता है जब किसी योजना को कैश से हटा दिया जाता है और ऑब्जेक्ट के लिए ऐतिहासिक आँकड़े नष्ट होने वाले होते हैं

तो कुछ इस तरह:

CREATE EVENT SESSION [PlanCacheEvictions] ON SERVER 
ADD EVENT sqlserver.query_cache_removal_statistics(
    ACTION(sqlserver.sql_text))

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.