2015-10-05 25 views
-1

我有一个具有恢复数据库实用程序的C#应用​​程序。恢复过程在大约400MB时消耗大量内存,并且不会将其返回给操作系统,这对于内存不足的计算机来说有点问题。现在我不限制服务器实例的内存消耗,我正在给它任何想要的东西。使用C#3.5重新启动SQL服务实例

我想使用C#代码重新启动服务器实例,它释放了恢复过程使用的内存。我看了一下在.NET 3.5上不可用的ServiceController,所以我正在寻找其他选项。目前,我想去以下路径之一:

  • SMO
  • 过程

你能给我两个的​​优点和缺点?另外,还有其他的选择可以做到这一点吗?

+1

“恢复过程消耗大量内存,大约400MB,并且不会将其返回给操作系统” - 让我们看一些代码.... –

+0

@MitchWheat它是导致问题的代码吗? – jmc

+0

您是否建议SQL实例在还原之后使用400 Mb以上的内存?以什么方式?比较dbcc memorystatus的输出前后的内容* SQL如何使用更多的内存。 –

回答

0

您可以使用下面的VB代码 我想你可以将其转换为C#使用代码转换器自动

Dim managedComputer As New ManagedComputer() 
Dim sqlService As Service 
sqlService = managedComputer.Services("MSSQLSERVER") 

If sqlService.ServiceState = ServiceState.Stopped Then 
    sqlService.Start() 
End If 

您需要添加以下到您的项目

Microsoft.SqlServer.Smo引用

Microsoft.SqlServer.SqlWmiManagement

Microsoft.SqlServer.WmiEnum

相关问题