我正在使用 SQL Server 2008 在 Windows Server 2008 上运行服务器应用程序,现在我的场景与给定的一样。
我已经实现了一个自定义的连接池(为什么我这样做是另一个长篇故事)。因此我不会在每个请求上打开或关闭连接。
服务器应用程序使用池中可用的 10 个连接在一分钟内执行数千个 DBCommand。
执行命令后,我没有清理连接(因为我不知道要清理什么以及如何在不关闭和重新打开它的情况下清理),而且我也没有处理命令对象本身。
当服务器应用程序关闭时,它会通过调用它们的 close 方法释放所有连接。
现在我观察到在 sqlserver 的 1 小时或 2 个进程的测试后大约 3Gig 内存,然后我关闭了我的服务器应用程序,即使占用的内存没有释放或减少(根据任务管理器和资源监视器),我重新启动后sqlserver 释放内存。
现在以下是我的问题。
我是否需要每次都调用 DBCommand 对象的 Dispose,如果是,那么它会对连接对象产生影响。
上面提到的问题是导致我观察到的还是还有其他原因。
有什么方法可以在不关闭连接的情况下清理连接,以及每次执行 DbCommand 后需要清理什么样的垃圾。
谢谢穆巴沙尔