Buffer Cache Hit Ratio

Microsoft.SQLServer.2014.DBEngine.BufferCacheHitRatioMonitor (UnitMonitor)

Buffer Cache Hit Ratio for 2014 DB Engine

Knowledge Base article:

Summary

Buffer Cache Hit Ratio monitor for SQL 2014 DB Engine

Percentage of pages that were found in the buffer pool without having to incur a read from disk.

Causes

Zero value indicates memory bottleneck - SQL Server cannot efficiently cache the data pages in memory; reads from disk are relatively high.

Resolutions

Overrideable Parameters

Name

Description

Default Value

Enabled

 

Yes

Generates Alerts

 

Yes

Interval (seconds)

The recurring interval of time in seconds in which to run the workflow.

900

Threshold

The collected value will be compared against this parameter.

0

Element properties:

TargetMicrosoft.SQLServer.2014.DBEngine
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2014.DBEngine.BufferCacheHitRatio.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2014: Buffer Cache Hit Ratio is too low
Buffer Cache Hit Ratio of SQL instance "{0}" on computer "{1}" is too low. See "Alert Context" tab for more details.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2014.DBEngine.BufferCacheHitRatioMonitor" Accessibility="Public" Enabled="true" Target="SQL2014Core!Microsoft.SQLServer.2014.DBEngine" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2014.DBEngine.BufferCacheHitRatio.MonitorType" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.DBEngine.BufferCacheHitRatioMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.ServerRole"]/InstanceName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Normal" MonitorTypeStateID="Normal" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<Threshold>0</Threshold>
</Configuration>
</UnitMonitor>