查看哪个数据库占用了多少内存
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
您将显示内存中尚未刷新的脏页。
我正在使用 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
您将显示内存中尚未刷新的脏页。