大量使用In-Memory table功能後,那當然就得監控並掌握每個memory object記憶體使用量,
避免發生任何記憶體意外。
透過監控才能安全避免意外或失敗,有真實數據也才能讓你更放心正式環境是否有任何記憶體錯誤,
相信大家都有使用sp_spaceused來查看每個資料表所使用disk space的經驗,
但目前sp_spaceused不支援memory table,貼心的MS提供一張新的記憶體最佳化物件的記憶體使用量報表,
讓我們可以完全監控並掌握每個記憶體最佳化物件。
select count(*) as 'count'
from [dbo].[rsa241_mem]
go
sp_spaceused 'rsa241_mem'
go
並無法支援memory table。
透過新報表查看每個記憶體物件的記憶體使用量
當然我們也可以透過sys.dm_db_xtp_table_memory_stats來取的這些統計資料
SELECT t.object_id
,t.NAME
,ISNULL((
SELECT CONVERT(DECIMAL(18, 2), (TMS.memory_used_by_table_kb) / 1024.00)
), 0.00) AS table_used_memory_in_mb
,ISNULL((
SELECT CONVERT(DECIMAL(18, 2), (TMS.memory_allocated_for_table_kb - TMS.memory_used_by_table_kb) / 1024.00)
), 0.00) AS table_unused_memory_in_mb
,ISNULL((
SELECT CONVERT(DECIMAL(18, 2), (TMS.memory_used_by_indexes_kb) / 1024.00)
), 0.00) AS index_used_memory_in_mb
,ISNULL((
SELECT CONVERT(DECIMAL(18, 2), (TMS.memory_allocated_for_indexes_kb - TMS.memory_used_by_indexes_kb) / 1024.00)
), 0.00) AS index_unused_memory_in_mb
FROM sys.tables t
INNER JOIN sys.dm_db_xtp_table_memory_stats TMS ON (t.object_id = TMS.object_id)
參考
sys.dm_db_xtp_table_memory_stats (Transact-SQL)
Restore and Recovery of Memory-Optimized Tables