sqlserver内存占用查询

内存占用:
SELECT 
    COUNT(*) * 8 / 1024.0 AS BufferPoolMemoryUsageMB
FROM 
    sys.dm_os_buffer_descriptors;
    
    SELECT 
    DB_NAME(database_id) AS DatabaseName,
    COUNT(*) * 8 / 1024.0 AS BufferPoolMemoryUsageMB
FROM 
    sys.dm_os_buffer_descriptors
GROUP BY 
    database_id
ORDER BY 
    BufferPoolMemoryUsageMB DESC; 

查询某个表数据占用内存排行:
-- 定义要查询的表名
DECLARE @TableName NVARCHAR(128) = 'web_content';

-- 动态生成查询语句
DECLARE @Query NVARCHAR(MAX);
SET @Query = 'SELECT ';

-- 遍历表的列,计算每列的长度
SELECT 
    @Query = @Query + 
    CASE 
        WHEN DATA_TYPE IN ('varchar', 'nvarchar', 'varbinary') THEN 
            'LEN(CAST(' + COLUMN_NAME + ' AS NVARCHAR(MAX)))'
        WHEN DATA_TYPE IN ('char', 'nchar', 'binary') THEN 
            'LEN(CAST(' + COLUMN_NAME + ' AS NVARCHAR(MAX)))'
        ELSE 
            '0'
    END + ' + '
FROM 
    INFORMATION_SCHEMA.COLUMNS
WHERE 
    TABLE_NAME = @TableName;

-- 去掉最后一个加号
SET @Query = LEFT(@Query, LEN(@Query) - 1);

-- 继续构建查询语句
SET @Query = @Query + ' AS TotalLength, *
FROM ' + QUOTENAME(@TableName) + '
ORDER BY TotalLength DESC';

-- 执行动态查询
EXEC sp_executesql @Query;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哇哈哈AD钙奶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值