查看哪个数据库占用了多少内存

Find out which database consumes how much memory

我正在使用 MSSQL Server。我想知道服务器中我的哪个数据库占用了多少memory/space。 我的一个朋友告诉我有一个"task"可以做到

我遇到了同样的问题,article 似乎是解决方案。

首先,按数据库和页面类型列出缓冲池中的页面数:

SELECT DB_NAME(database_id),
page_type,
COUNT(page_id) AS number_pages
FROM sys.dm_os_buffer_descriptors
WHERE database_id! = 32767
GROUP BY database_id, page_type
ORDER BY number_pages DESC

然后,按数据库列出缓冲池中的页数

SELECT DB_NAME(database_id),
COUNT(page_id) AS number_pages
FROM sys.dm_os_buffer_descriptors
WHERE database_id! =32767
GROUP BY database_id
ORDER BY database_id

您可以从输出中看到,您将能够看到加载到 SQL 服务器内存中的数据页和索引页的数量。

Try to list the number of pages in the buffer pool by page type
SELECT page_type, COUNT(page_id) AS number_pages
FROM sys.dm_os_buffer_descriptors
GROUP BY page_type
ORDER BY number_pages DESC
GO

然后列出缓冲池中的脏页数

SELECT COUNT(page_id) AS number_pages
FROM sys.dm_os_buffer_descriptors
WHERE is_modified = 1

您将显示内存中尚未刷新的脏页。