您好,我继承了 Windows 2003 服务器和运行 MS SQL 2005 Native 客户端的客户端 XP 工作站上的 MS SQL 2005 服务器支持。数据库大小约为 1GB,一些表包含数千条记录。
我现在遇到的问题是,当客户端 (OLEDB) 应用程序访问服务器以创建新客户时,例如,在执行任务时,它们的内存使用量达到 1.23GB 的峰值。在某些工作站上,它们会耗尽内存,操作会失败。我已加载了早期的较小数据库副本,运行时内存使用量小于 50MB。因此,内存蠕变似乎与数据库中的记录数有关。我可以在客户端工作站上做什么来确定使用内存的内容以及如何减少内存使用量。任何建议都将不胜感激。非常感谢。亚瑟
答案1
如果客户端与数据库位于不同的机器上(听起来像这里的情况),并且您可以通过任务管理器或进程资源管理器确认客户端应用程序进程正在消耗所有内存,那么您就无能为力了。必须调整或重新设计应用程序,以便它不会将所有数据本地化到客户端。您无法对 SQL Server 配置进行任何操作来防止这种情况发生。
如果你真的很幸运(并且真的知道自己在做什么!)那么存储过程或视图中会有一些代码你可以进入并调整。不过,这确实是开发人员需要研究的东西。