Как узнать, настроена ли база данных 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