Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 为什么SQL Server进程仍在运行?_Sql Server - Fatal编程技术网

Sql server 为什么SQL Server进程仍在运行?

Sql server 为什么SQL Server进程仍在运行?,sql-server,Sql Server,我有一个VB.NET windows应用程序,当我调试它时,它会打开连接。此时,我可以看到通过转到SQLServerManagementStudio中的活动监视器创建了两个进程。我执行查询,然后立即关闭连接。然而,当我这样做的时候,这些过程并没有消失 为了我的生命,我不明白为什么不。这不是一个问题,只是我在软件中有一个恢复选项,它不允许我恢复,因为数据库正在使用中,因为进程仍然处于打开状态。在我退出应用程序之前,它们不会消失。可能这只是因为ADO.Net实际上保持连接打开,以便您以后可以使用它。

我有一个VB.NET windows应用程序,当我调试它时,它会打开连接。此时,我可以看到通过转到SQLServerManagementStudio中的活动监视器创建了两个进程。我执行查询,然后立即关闭连接。然而,当我这样做的时候,这些过程并没有消失


为了我的生命,我不明白为什么不。这不是一个问题,只是我在软件中有一个恢复选项,它不允许我恢复,因为数据库正在使用中,因为进程仍然处于打开状态。在我退出应用程序之前,它们不会消失。

可能这只是因为ADO.Net实际上保持连接打开,以便您以后可以使用它。这称为连接池。打开和关闭连接是一个昂贵的过程,连接池有助于降低这一成本


关于恢复问题,您可以执行SQL来关闭数据库上所有打开的连接。目前无法访问SQLMS,但如果您在“删除数据库”对话框中选中“关闭现有连接”选项,然后将对话框输出到SQL,您将看到它。

可能这只是因为ADO.Net实际上保持连接打开,以便您以后可以使用它。这称为连接池。打开和关闭连接是一个昂贵的过程,连接池有助于降低这一成本


关于恢复问题,您可以执行SQL来关闭数据库上所有打开的连接。目前无法访问SQLMS,但如果您在“删除数据库”对话框中选中“关闭现有连接”选项,然后将对话框输出到SQL,您将看到它。

此数据库用作桌面应用程序的本地数据存储

Sql Server(甚至是Express Edition)是一个服务器级数据库引擎。它旨在使用多台不同计算机甚至应用程序之间共享的数据库。我不希望一个服务器进程仅仅因为一个单独的连接关闭而消失,我很惊讶它甚至需要首先启动—使用Sql server Express,这些进程通常已经在运行了


如果该数据库是桌面应用程序的本地数据存储,那么您确实应该使用进程内引擎,如SQLServerCompact、Sqlite,甚至Access。对于这样的应用程序,您可能希望升级到Sql Server Express的例外情况是,您正在编写的应用程序是它运行的计算机存在的原因。

此数据库用作桌面应用程序的本地数据存储

Sql Server(甚至是Express Edition)是一个服务器级数据库引擎。它旨在使用多台不同计算机甚至应用程序之间共享的数据库。我不希望一个服务器进程仅仅因为一个单独的连接关闭而消失,我很惊讶它甚至需要首先启动—使用Sql server Express,这些进程通常已经在运行了


如果该数据库是桌面应用程序的本地数据存储,那么您确实应该使用进程内引擎,如SQLServerCompact、Sqlite,甚至Access。对于这样的应用程序,您可能希望升级到Sql Server Express的例外情况是,您正在编写的应用程序是它运行的机器存在的原因。

我认为他说的是SPID而不是sqlserv.exeAh-这对我来说更有意义。我认为他说的是SPID而不是sqlserv.exeAh-这对我来说更有意义me.
ALTER DATABASE MyDatabase SET SINGLE_USER WITH ROLLBACK IMMEDIATE
启动所有现有连接。
ALTER DATABASE MyDatabase SET SINGLE_USER WITH ROLLBACK IMMEDIATE
启动所有现有连接。