“ อัตราส่วนการเข้าแคชบัฟเฟอร์” ของ 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

ในกรณีที่มีความเกี่ยวข้องนี่คือสถิติเซิร์ฟเวอร์อื่น ๆ บางประการ:

  • อายุขัยของหน้า: 145
  • หน้าอ่าน / วินาที: 1,380,009,009

1
ขออภัยโพสต์บล็อกไม่ถูกต้อง :-( Denis Gobo ทำให้ถูกต้อง ...
Aaron Bertrand

คำตอบ:


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
คุณควรให้เครดิตกับDenis Gobo ...
Aaron Bertrand

@Aaron หนึ่งในวันเหล่านั้น - เพิ่มที่มา
LowlyDBA

ฉันสับสนกับผลลัพธ์ที่ได้รับดูที่เกี่ยวข้องคุณจะมีอัตราส่วนการแคชของบัฟเฟอร์ได้ 100% ด้วย PLE 103 ได้อย่างไร
James Jenkins

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%'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.