4

我想通过 SQL 查询获取任何数据库的信息,SQL Server 2016无论它是否已设置为内存优化。我知道以下查询

SELECT DatabasePropertyEx('DATABASENAME', 'IsXTPSupported');

告诉您是否可以(通过设置内存优化数据文件组)将数据库设置在内存表中。但我想知道 db 是否已经设置为包含在内存表中,即它的内存优化数据文件组是否已经设置?

对于任何给定的数据库,我如何通过 SQL 查询来实现这一点?

4

3 回答 3

1

谷歌搜索你的问题的标题我发现了这个:https ://msdn.microsoft.com/en-CA/library/dn232522.aspx

SELECT 
    quotename(schema_name(o.schema_id)) + N'.' + quotename(o.name) AS [table],
    s.name AS [statistics object],
    1-s.no_recompute AS [auto-update enabled]
FROM sys.stats s JOIN sys.tables o ON s.object_id=o.object_id
WHERE o.is_memory_optimized=1
于 2017-01-05T13:49:46.390 回答
1

很多方法......比上面列表的另一种选择:

SELECT type, name, memory_node_id, pages_kb/1024 AS pages_MB   
FROM sys.dm_os_memory_clerks WHERE type LIKE '%xtp%' 
于 2018-04-18T17:02:44.847 回答
1

尝试这个:

SELECT distinct DB_NAME()
FROM sys.master_files sdf
INNER JOIN
sys.filegroups fg
ON sdf.data_space_id=fg.data_space_id and fg.type='FX'
于 2017-07-14T15:30:08.967 回答