Как узнать, настроена ли база данных SQL Server 2016 для оптимизации памяти или нет?

Я хочу получить информацию через SQL-запрос для любой базы данных в SQL Server 2016 уже настроен ли он для оптимизации памяти или нет. Я знаю следующий запрос

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

говорит вам, можете ли вы установить (путем установки группы файлов данных, оптимизированных для памяти) базу данных в таблицах памяти или нет. Но я хочу знать, установлен ли db на то, чтобы он содержался в таблице памяти, или нет, т.е. его группа файлов данных, оптимизированных для памяти, уже установлена ​​или нет?

Как я могу добиться этого с помощью SQL Query для любой базы данных?

3 ответа

Попробуй это:

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'

Много способов... Еще одна альтернатива, чем приведенный выше список:

SELECT type, name, memory_node_id, pages_kb/1024 AS pages_MB   
FROM sys.dm_os_memory_clerks WHERE type LIKE '%xtp%' 

Погуглив заголовок вашего вопроса, я нашел это: 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
Другие вопросы по тегам