对于 sql server 2012,我正在寻找一种方法来查看哪些活动用户登录使用了多少内存和 CPU。我进行了搜索,但似乎只有一种方法可以查看聚合或每个数据库使用了多少内存。任何帮助都将不胜感激。
答案1
sp_who2 可以提供一些信息。
但一般来说,这个问题对于内存来说毫无意义。内存主要用作页面缓存,它从来都不是特定于用户的,而是特定于数据库的。数据库中的数据页不属于用户。它们也会根据需要被删除,并尽可能长时间地保留 - 因此,如果您试图找出服务器使用如此多内存的原因,那么方法完全错误。
CPU 也类似 - 这是查询效率的问题。它不应该从用户开始,而应该从 SQL 查询开始。特定用户可能会执行一个糟糕的 SQL 查询,这会消耗大量 CPU,但这不是用户的错,而且您可以看到哪些 SQL 语句在处理效率方面消耗了所有的 CPU。
答案2
运行 sp_who2 active 查看所有活动使用情况。