为什么Visual Studio会启动LocalDB,我该如何停止它?

21

我试图优化我的Visual Studio体验和整个机器的性能。 我注意到我有两个SQL Server实例在运行,其中一个是LocalDB。 这是由Visual Studio启动的。

我宁愿它根本不启动local db,但我可以想象它会使用它来完成一些任务。由于我已经有一个完整的sql实例在运行,如果它使用那个就更好了。

有人知道我是否可以停止它启动,或者至少在确实需要它之前不要启动它吗?


你是指安装在VS2013中并在计算机启动时启动的SQL Server Express实例吗?你可以启动services.msc并停止SQL Server (SQLEXPRESS)SQL Server Agent (SQLEXPRESS)服务。如果你想确保它们不会在计算机启动时启动,将它们设置为“禁用”即可。这将节省启动时和一般计算机使用时的一些资源。 - Svein Fidjestøl
这种情况只会发生在你打开特定的项目时吗?还是所有项目都有这个问题?如果是某个特定项目,请发布你的app.config/web.config文件。 - Kishore Kumar
我已经提交了一个连接项目,如果你想让它发生,请投票支持!https://connect.microsoft.com/SQLServer/feedback/details/1694246 - Ed Elliott
2个回答

11
以下步骤对我有效。
(注意:我根本不使用LocalDB,所以如果此过程完全禁用它,我并不在意。您可能会有不同的看法。)
  1. 确保Visual Studio未运行。
  2. 运行Visual Studio并转到SQL Server对象资源管理器。
  3. 右键单击每个LocalDB实例,选择删除,或者如果删除无法使用,则选择断开连接。
  4. 关闭Visual Studio。
  5. 终止由Visual Studio启动的所有sqlservr.exe实例。
  6. 转到HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\SSDT\SqlServerObjectExplorer,并验证它没有ServerInstance子键,例如ServerInstance1、ServerInstance2等。
  7. 重命名HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Local DB,使Visual Studio无法找到它(例如,在键名后附加.DISABLED)。
  8. 运行Visual Studio,并享受没有LocalDB的体验。
请注意,每次安装SQL Server数据工具(SSDT)的更新时,您需要重复此过程,因为安装程序会重新添加重命名的键。

1
验证了这个过程按照描述的方式工作。非常有帮助。如果没有使用,Visual Studio创建这个占用内存的实例会相当恼人。应该有一个更明确的选项。 - Aaron Hudon
7
对我来说,你可以很容易地将"C:\Program Files\Microsoft SQL Server\120\LocalDB\Binn\sqlservr.exe"重命名。 - Fosna
1
前五个步骤已经为我解决了大部分的内存膨胀问题。 - StingyJack

3
LocalDB不像SQL Server Express一样作为服务运行。它将在需要时自动启动和停止。LocalDB不会创建任何数据库服务;当需要时,LocalDB进程会自动启动和停止。应用程序只需连接到"Data Source=(localdb)\v11.0",而LocalDB进程将作为应用程序的子进程启动。在最后一个连接到该进程的连接关闭几分钟后,进程将关闭。
参考链接:Introducing LocalDB, an improved SQL Express - SQL Server Express Blog

2
是的,我知道。我的问题是为什么Visual Studio启动它。我猜想这是为了SQL数据库项目编译。我更希望VS使用我已经运行的SQL实例,并将RAM用于更好的事情。 - Jonesie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接