9990 का "बफर कैश हिट अनुपात" क्या है?


12

मुझे यह क्वेरी एक ब्लॉग पोस्ट से मिली :

SELECT object_name, counter_name, cntr_value
FROM sys.dm_os_performance_counters
WHERE [object_name] LIKE '%Buffer Manager%'
AND [counter_name] = 'Buffer cache hit ratio'

पोस्ट ने कहा कि यह मुझे कैश में हिट का प्रतिशत देगा। ऐसा प्रतीत होता है कि यह 0-100 का मान होगा (इसने 87 का परिणाम दिखाया)।

लेकिन जब मैं इसे चलाता हूं तो मुझे बहुत अधिक संख्या मिल रही है। यहाँ एक उदाहरण है:

object_name               counter_name             cntr_value  
SQLServer:Buffer Manager  Buffer cache hit ratio   9990

क्या इसका मतलब 99.90% है?

यदि नहीं, तो इसका क्या मतलब है? और मैं वास्तविक मूल्य कैसे प्राप्त कर सकता हूं?

नोट: मेरे पास 257 से कम और 352363 जितना उच्च मूल्य है

यह प्रासंगिक है, यहाँ कुछ अन्य सर्वर आँकड़े हैं:

  • पृष्ठ जीवन प्रत्याशा: १४५
  • पृष्ठ पढ़ता है / सेकंड: 1,380,009,009

1
क्षमा करें, लेकिन ब्लॉग पोस्ट गलत है। :-( डेनिस Gobo सही यह हो जाता है ...
हारून बर्ट्रेंड

जवाबों:


18

भ्रामक, है ना?

ठीक है, वास्तव में अनुपात प्राप्त करने के लिए, आपको परिणाम लेने के Buffer cache hit ratio baseअलावा इसके साथ स्वयं का उपयोग करने की आवश्यकता होगी ।Buffer cache hit ratioBuffer cache hit ratio / Buffer cache hit ratio base

नीचे दी गई क्वेरी ( कम से कम डॉट से ) की कोशिश करें, जो आपको वह% देना चाहिए जो आप खोज रहे हैं:

SELECT (a.cntr_value * 1.0 / b.cntr_value) * 100.0 as BufferCacheHitRatio
FROM sys.dm_os_performance_counters  a
JOIN  (SELECT cntr_value, OBJECT_NAME 
    FROM sys.dm_os_performance_counters  
    WHERE counter_name = 'Buffer cache hit ratio base'
        AND OBJECT_NAME = 'SQLServer:Buffer Manager') b ON  a.OBJECT_NAME = b.OBJECT_NAME
WHERE a.counter_name = 'Buffer cache hit ratio'
AND a.OBJECT_NAME = 'SQLServer:Buffer Manager'

5
आप क्रेडिट चाहिए डेनिस Gobo ...
हारून बर्ट्रेंड

@ ऐरन उन दिनों में से एक - एट्रिब्यूशन जोड़ा गया
लोवलीबा

मेरे द्वारा प्राप्त परिणामों से मैं भ्रमित हूं, संबंधित देखें कि आपके पास 103 के पीएलई के साथ 100% का बफ़र कैश हिट अनुपात कैसे हो सकता है?
जेम्स जेनकिंस

0

यदि आपके पास SQL ​​सर्वर का डिफ़ॉल्ट उदाहरण नहीं है, लेकिन उदाहरण के लिए, आपको इस तरह क्वेरी को संशोधित करना होगा:

  SELECT (a.cntr_value * 1.0 / b.cntr_value) * 100.0 as BufferCacheHitRatio
FROM sys.dm_os_performance_counters  a
JOIN  (SELECT cntr_value, OBJECT_NAME 
    FROM sys.dm_os_performance_counters  
    WHERE counter_name = 'Buffer cache hit ratio base'
        AND OBJECT_NAME LIKE '%:Buffer Manager%') b ON  a.OBJECT_NAME = b.OBJECT_NAME
WHERE a.counter_name = 'Buffer cache hit ratio'
AND a.OBJECT_NAME LIKE '%:Buffer Manager%'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.