MSSQL 2016: 記憶體最佳化資料檔案群組容器可用空間 (MB)

Microsoft.SQLServer.2016.CollectionRule.Container.SpaceFreeMB (Rule)

收集記憶體最佳化資料檔案群組容器中的可用空間量 (MB)。

Knowledge Base article:

摘要

此規則會收集記憶體最佳化資料檔案群組容器中可用空間的數量 (MB)。

因為會將更多資料加入記憶體最佳化資料的資料表,所以記憶體最佳化資料檔案群組容器資料夾一般來說會隨著時間變大。

在其中設定資料庫儲存體位置的磁碟機上可用磁碟空間太低時,可能會失敗,進而無法成功處理資料、延遲使用者查詢,或影響其他共用相同磁碟空間配置的應用程式。

可用空間不足的解決方法取決於根本原因,必須在發生這問題時於每種情況下調查。此狀況可透過任何可能方式之一予以減輕:

可覆寫的參數

名稱

描述

預設值

已啟用

啟用或停用該工作流程。

間隔 (秒)

執行工作流程的週期性時間間隔 (秒)。

900

指令碼延遲 (毫秒)

此參數可設定工作流程所執行的連續 T-SQL 查詢之間的延遲。這可能有助於減少工作流程在有大量目標物件時,所產生的磁碟使用量。請先取得 Microsoft 支援服務的建議,再變更此參數。

0

同步處理時間

使用 24 小時制指定的同步處理時間。將會忽略。

 

逾時 (秒)

指定允許工作流程在關閉且標示為失敗之前執行的時間。

300

Element properties:

TargetMicrosoft.SQLServer.2016.Container
CategoryPerformanceCollection
EnabledTrue
Alert GenerateFalse
RemotableTrue

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.SQLServer.2016.DataSource.Container.FreeSpacePerf Default
WriteToDB WriteAction Microsoft.SystemCenter.CollectPerformanceData Default
WriteToDW WriteAction Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData Default

Source Code:

<Rule ID="Microsoft.SQLServer.2016.CollectionRule.Container.SpaceFreeMB" Target="SQL2016Core!Microsoft.SQLServer.2016.Container" Enabled="true">
<Category>PerformanceCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Microsoft.SQLServer.2016.DataSource.Container.FreeSpacePerf">
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<ConnectionString>$Target/Host/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ConnectionString$</ConnectionString>
<ServerName>$Target/Host/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ServerName>
<SqlInstanceName>$Target/Host/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</SqlInstanceName>
<ObjectName>Memory-Optimized Container</ObjectName>
<CounterName>Memory-Optimized Filegroup container free space (MB)</CounterName>
<InstanceName/>
<DatabaseName>$Target/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</DatabaseName>
<DBFileId>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Container"]/ContainerID$</DBFileId>
<Value>$Data/Property[@Name='FreeSpaceSpaceMB']$</Value>
<TimeoutSeconds>300</TimeoutSeconds>
<ScriptDelayMsec>0</ScriptDelayMsec>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="WriteToDB" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData"/>
<WriteAction ID="WriteToDW" TypeID="SCDW!Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData"/>
</WriteActions>
</Rule>