RDS Performance Insights“按用户切片”显示未知用户产生数据库负载

0

【以下的问题经过翻译处理】 我正在使用 AWS RDS Performance Insights 并试图确定谁和什么正在产生数据库负载,在查看“按用户切片”时,我看到预期的主机和用户名交叉引用的数据库连接,但我也看到大量负载来自标记为“未知”用户的主机。

我正在使用 SQL Server 数据库。

有其他人经历过这种情况或者能够解释为什么我会看到这种行为? 谢谢你的帮助

profile picture
专家
已提问 8 个月前49 查看次数
1 回答
0

【以下的回答经过翻译处理】 你好,

在性能洞察中看到“未知”用户的原因是,RDS Performance Insights 从数据库引擎的内部表中收集数据。如果字段为 NULL 或为空,Performance Insights 会将此值报告为“未知”。这使得确定数据库负载的报告指标(例如等待统计信息)更加准确。 “未知”的真正意思是“数据不可用”或“数据未标记”....为了以某种方式提供帮助,我在下面提供了一个查询,以查找最近运行的查询的实际用户名,以手动方式找出谁是未知用户:

USE master
go 
SELECT sdest.DatabaseName
    ,sdes.session_id
    ,sdes.[host_name]
    ,sdes.[program_name]
    ,sdes.client_interface_name
    ,sdes.login_name
    ,sdes.login_time
    ,sdes.nt_domain
    ,sdes.nt_user_name
    ,sdec.client_net_address
    ,sdec.local_net_address
    ,sdest.ObjName
    ,sdest.Query
FROM sys.dm_exec_sessions AS sdes
INNER JOIN sys.dm_exec_connections AS sdec ON sdec.session_id = sdes.session_id
CROSS APPLY (
    SELECT db_name(dbid) AS DatabaseName
        ,object_id(objectid) AS ObjName
        ,ISNULL((
                SELECT TEXT AS [processing-instruction(definition)]
                FROM sys.dm_exec_sql_text(sdec.most_recent_sql_handle)
                FOR XML PATH('')
                    ,TYPE
                ), '') AS Query
    FROM sys.dm_exec_sql_text(sdec.most_recent_sql_handle)
    ) sdest
where sdes.session_id <> @@SPID
--and sdes.nt_user_name = '' -- Put the username here !
ORDER BY sdec.session_id

你可以运行上面的共享 SQL 查询来检查用户对 SQL Server 实例施加了多少负载

如果您还有其他问题,请告诉我。

profile picture
专家
已回答 8 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则