Монитор переходит в критическое состояние и создает предупреждение, когда пространство, используемое активными строками в файлах оптимизированных для памяти данных и выраженное в процентах от размера файлов данных, опускается ниже установленного порогового значения.
Этот монитор переходит в критическое состояние и создает предупреждение, если коэффициент заполнения сборщика мусора (пространство, занятое активными строками в файлах оптимизированных для памяти данных, выраженное в процентах от размера файлов данных) опускается ниже установленного порогового значения.
Коэффициент заполнения сборщика мусора для файловой группы данных, оптимизированных для памяти, — это метрика, которая показывает средний коэффициент заполнения среди всех активных файлов данных или разностных файлов, содержащих вставленные или удаленные строки. Если эта метрика имеет значение ниже 50 %, это означает, что происходит отставание автоматического слияния. Этот факт не требует каких-либо неотложных действий, пока количество пар файлов контрольных точек не превышает 8000 и в файловой группе, оптимизированной для памяти, доступно достаточное количество места для хранения.
Более подробную информацию можно найти в разделе документации sys.dm_db_xtp_checkpoint_files (Transact-SQL)
http://go.microsoft.com/fwlink/?LinkId=799249
Раздел "Как работает сборщик мусора" расположен в статье "Создание и управление хранилищем для оптимизированных для памяти объектов"
http://go.microsoft.com/fwlink/?LinkId=799250
Слияние пар файлов контрольных точек запускается на основе внутренней политики слияния. Дополнительные сведения см. в этой статье.
Выполните вручную слияние и принудительный сбор мусора, как описано в следующих статьях:
.
Название | Описание | Значение по умолчанию |
Приоритет предупреждения | Определяет приоритет предупреждения. | Обычные |
Серьезность предупреждения | Определяет серьезность предупреждения. | Ошибка |
Включено | Включает или отключает рабочий процесс. | Да |
Создает предупреждения | Определяет, создает ли рабочий процесс предупреждения. | Да |
Интервал (в секундах) | Повторяющийся интервал времени в секундах, по истечении которого запускается рабочий процесс. | 900 |
Задержка скрипта (в миллисекундах) | Этот параметр определяет задержку между последовательными запросами T-SQL, выполняемыми в рабочем процессе. Это может помочь уменьшить нагрузку, создаваемую рабочим процессом в случае большого числа целевых объектов. Пожалуйста, проконсультируйтесь со службой поддержки Майкрософт перед изменением этого параметра. | 0 |
Время синхронизации | Время синхронизации указывается в 24-часовом формате и может быть опущено. | 00:04 |
Порог | Собранное значение будет сравниваться с этим параметром. | 50 |
Время ожидания (в секундах) | Определяет время, в течение которого возможно выполнение рабочего процесса перед закрытием и пометкой как сбойный. | 300 |
Target | Microsoft.SQLServer.2014.DBFileGroupFx | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2014.MonitorType.DBFileGroupFx.GarbageCollectionState | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2014.Monitor.DBFileGroupFx.GarbageCollectionState" Target="SQL2014Core!Microsoft.SQLServer.2014.DBFileGroupFx" ParentMonitorID="SystemHealth!System.Health.PerformanceState" TypeID="Microsoft.SQLServer.2014.MonitorType.DBFileGroupFx.GarbageCollectionState" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.Monitor.DBFileGroupFx.GarbageCollectionState.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.ServerRole"]/InstanceName$</AlertParameter1>
<AlertParameter2>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter2>
<AlertParameter3>$Target/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.Database"]/DatabaseName$</AlertParameter3>
<AlertParameter4>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.FileGroup"]/GroupName$</AlertParameter4>
<AlertParameter5>$Data/Context/Property[@Name='StorageUsageFillFactor']$</AlertParameter5>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Critical" MonitorTypeStateID="Critical" HealthState="Error"/>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<ServerName>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ServerName>
<SqlInstanceName>$Target/Host/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.ServerRole"]/InstanceName$</SqlInstanceName>
<DatabaseName>$Target/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.Database"]/DatabaseName$</DatabaseName>
<Value>Property[@Name='StorageUsageFillFactor']</Value>
<Threshold>50</Threshold>
<TimeoutSeconds>300</TimeoutSeconds>
<ScriptDelayMsec>0</ScriptDelayMsec>
</Configuration>
</UnitMonitor>