Sql server 使用C获取分配给SQL Server 2008的内存#

Sql server 使用C获取分配给SQL Server 2008的内存#,sql-server,sql-server-2008,memory-management,Sql Server,Sql Server 2008,Memory Management,我开发了一个安装程序,现在我想添加一个功能(基本上是一个检查),检查分配给SQLServer的内存 我可以登录到SQL Server并获取内存详细信息,但在客户端,它们不提供对SQL Server的访问,因此我需要开发一个工具来获取此详细信息。他们将在工具中提供连接到SQL Server的凭据 我知道如何改变记忆 EXEC master.dbo.sp_configure GO EXEC master.dbo.sp_configure 'show advanced options', 1 RECO

我开发了一个安装程序,现在我想添加一个功能(基本上是一个检查),检查分配给SQLServer的内存

我可以登录到SQL Server并获取内存详细信息,但在客户端,它们不提供对SQL Server的访问,因此我需要开发一个工具来获取此详细信息。他们将在工具中提供连接到SQL Server的凭据

我知道如何改变记忆

EXEC master.dbo.sp_configure
GO
EXEC master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE
GO
EXEC master.dbo.sp_configure 'min server memory', 1024
RECONFIGURE
GO
EXEC master.dbo.sp_configure
GO

但是有什么方法可以得到分配了多少内存吗?

您可以通过
sys.configurations
目录视图查询-这里的设置如何

SELECT value_in_use
FROM sys.configurations
WHERE name = 'max server memory (MB)'
这就是你想要的价值吗


或者您正在查找“最小服务器内存(MB)”的值?(正如你文章中的代码所暗示的)

你可以通过
sys.configurations
目录视图查询-这里的设置如何

SELECT value_in_use
FROM sys.configurations
WHERE name = 'max server memory (MB)'
这就是你想要的价值吗

或者您正在查找“最小服务器内存(MB)”的值?(正如您文章中的代码所暗示的)

为目标主机上对应于SQL Server进程的类别实例打开一个对象。然后查找内存计数器:

  • 工作集:显示工作集中的当前字节数 这个过程的集合
  • 专用字节数:显示此文件所包含的当前字节数 进程已分配无法与其他进程共享的资源
  • 虚拟字节:以字节为单位显示虚拟字节的当前大小 进程正在使用的地址空间
您还可以通过
PerformanceCounter
对象或通过查询SQL Server自己的计数器。但后者要求您知道如何从连续样本计算计数器值,因为视图公开了原始值。根据计数器类型计算值的算法记录在。

打开与目标主机上的SQL Server进程对应的类别实例的对象。然后查找内存计数器:

  • 工作集:显示工作集中的当前字节数 这个过程的集合
  • 专用字节数:显示此文件所包含的当前字节数 进程已分配无法与其他进程共享的资源
  • 虚拟字节:以字节为单位显示虚拟字节的当前大小 进程正在使用的地址空间
您还可以通过
PerformanceCounter
对象或通过查询SQL Server自己的计数器。但后者要求您知道如何从连续样本计算计数器值,因为视图公开了原始值。根据计数器类型计算值的算法记录在