我找不到解决问题的方法......
我们安装了Windows Server 2012 R2和SQL Server 2012。我没有安装这个服务器,所以我不能说每个用户在启动时是否有一些资源分配。
我的问题是,如果我通过远程桌面连接到服务器并运行查询,即使它是一个简短的查询,设置了索引/密钥,它们也需要很长时间才能执行,但我在任务管理器中发现我可以&# 39;为SQL Server获得超过200GB的内存使用量。
SQL Server中的最大内存设置设置为2147483647
如果我只有一些内存分配给我的帐户,我在哪里可以找到?
由于
答案 0 :(得分:0)
内存使用可能并不总是一个问题。您可以使用以下dmvs检查查询是否在等待内存授予
- 在dmv下面给出了等待内存授权的查询文本
select * from sys.dm_exec_query_memory_grants mg
join
sys.dm_exec_requests ec
on ec.session_id=mg.session_id
--left join
--sys.dm_exec_connections con
--on con.session_id=ec.session_id
outer apply
sys.dm_exec_sql_text(ec.sql_handle) txt
outer apply
sys.dm_exec_query_plan(ec.plan_handle) qp
此外,您可以检查哪个内存职员使用的内存最多
select (sum(pages_kb)*128)/1024 as 'sizein_mb',type as 'clerkttype'
from sys.dm_os_memory_clerks
group by type
order by (sum(pages_kb)*128)/1024 desc
在此之前,您可能需要检查是否有锁定,阻塞
select
session_id,status,blocking_session_id,wait_type,txt.text from sys.dm_exec_requests ec
cross apply
sys.dm_exec_sql_text(ec.sql_handle) txt
希望这有助于您的故障排除。从任务管理器检查内存不会让您获得准确的统计数据。下面的问题和答案有理由和一些好的链接进一步检查。
https://dba.stackexchange.com/questions/35418/why-is-sql-server-memory-showing-in-task-manager