Tỷ lệ bộ nhớ cache của bộ đệm trong bộ đệm của bộ đệm 9990 có nghĩa là gì?


12

Tôi đã nhận được truy vấn này từ một bài đăng trên blog :

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'

Bài đăng nói rằng nó sẽ cho tôi một tỷ lệ phần trăm lượt truy cập vào bộ đệm. Nó dường như chỉ ra rằng nó sẽ có giá trị 0-100 (nó cho thấy kết quả là 87).

Nhưng khi tôi chạy nó, tôi đang nhận được số lượng rất cao. Đây là một ví dụ:

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

Điều này có nghĩa là 99,90%?

Nếu không, nó có nghĩa là gì? Và làm thế nào tôi có thể nhận được giá trị thực?

LƯU Ý: Tôi đã nhận được các giá trị thấp nhất là 257 và cao tới 352363

Trong trường hợp có liên quan, đây là một vài thống kê máy chủ khác:

  • Tuổi thọ của trang: 145
  • Trang đọc / giây: 1.380.009.009

1
Xin lỗi, nhưng bài viết trên blog là sai. :-( Denis Gobo hiểu đúng ...
Aaron Bertrand

Câu trả lời:


18

Nhầm lẫn phải không?

Chà, để thực sự có được tỷ lệ, bạn sẽ cần phải tự làm điều đó bằng cách sử dụng Buffer cache hit ratio basengoài việc Buffer cache hit ratiolấy kết quả từ đó Buffer cache hit ratio / Buffer cache hit ratio base.

Hãy thử truy vấn bên dưới (từ Ít hơn Dot ), sẽ cung cấp cho bạn% bạn đang tìm kiếm:

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
Bạn nên ghi nhận Denis Gobo ...
Aaron Bertrand

@Aaron Một trong những ngày đó - ghi công được thêm vào
LowlyDBA

Tôi bối rối bởi các kết quả tôi nhận được, xem có liên quan Làm thế nào bạn có thể có tỷ lệ trúng bộ đệm Bộ đệm là 100% với PLE là 103?
James Jenkins

0

Nếu bạn không có phiên bản mặc định của máy chủ SQL, nhưng phiên bản được đặt tên, bạn phải sửa đổi truy vấn như thế này:

  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%'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.