小编Dom*_*her的帖子

SQL Server 使用的 RAM 比应有的多得多

我有一个 SQL Server 2012 实例使用了更多的 RAM。

SQL Server 进程使用大约 22.5GB RAM:

任务管理器

该实例配置为最大使用 10GB:

SSMS 内存属性

这比预期的要多得多。(这将导致服务器崩溃,我们必须重新启动才能恢复)。

我用这个查询检查了内存使用情况(职员):

select type, name, pages_kb/1024.0/1024.0 "size Gb" from sys.dm_os_memory_clerks
order by pages_kb desc 
Run Code Online (Sandbox Code Playgroud)

SQL Server 似乎只使用了大约 7GB RAM:

查询结果

我知道它是 SQL Server 的旧版本(遗憾的是它没有修补到最新版本),但我无法找到有关 SQL Server 2012 SP2 中内存泄漏的任何明确文档。

我应该在哪里查找为什么 SQL Server 使用了大约 200% 的资源?

此实例上有一个链接服务器。很多使用 SQL 驱动程序(SQLNCLI 和 SQLNCLI11),但也有一些使用我以前从未见过的“HFSQL 的 PC SOFT OLE DB 提供程序”。

有什么方法可以“证明”这个驱动程序有问题吗?客户端可能不会同意基于假设更改设置,因此如果有任何方法(除了禁用之外)可以清楚地显示链接服务器正在使用多少 RAM,那将是无价的。

@Aleksey:这就是产品返回的内容 在此输入图像描述

sql-server memory sql-server-2012

11
推荐指数
2
解决办法
2931
查看次数

存储过程中的 sp_msforeachdb 不能正常工作

我正面临奇怪的行为。

以下是重现方法:在具有多个数据库的实例(在我的情况下为 SQL Server 2016)中,创建该存储过程(master在我的情况下):

create procedure dbo.Strange WITH EXECUTE AS owner
as
begin
    exec sp_MSforeachdb 'select''?''';
end;
Run Code Online (Sandbox Code Playgroud)

然后使用以下命令调用该存储过程:

Exec master.dbo.Strange
Run Code Online (Sandbox Code Playgroud)

正如您将看到的,它只会返回某些数据库的数据,而不是全部(在我的例子中是 11 个中的 3 个)。

怎么了?

sql-server sql-server-2016

3
推荐指数
1
解决办法
927
查看次数