关闭数据库服务减少内存占用

问题:

近来,一打开电脑就看到内存占用了18个G,明明什么都还没有打开。

我利用codex查到:

更实在的原因:开机后数据库服务起得很多。

我查到当前比较吃内存的进程是:

  • sqlservr.exe大约1.54 GB
  • mpdwsvc.exe两个进程合计大约1.06 GB
  • mysqld.exe大约0.38 GB
  • MsMpEng.exe大约0.52 GB

更关键的是,你的数据库相关服务是开机自动启动的,而且不止一个:

  • SQL Server (MSSQLSERVER)
  • SQL Server Analysis Services
  • SQL Server PolyBase 引擎
  • SQL Server PolyBase 数据移动
  • MySQL80
  • postgresql-x64-16

也就是说,你这台电脑一开机其实就在同时养着SQL Server + MySQL + PostgreSQL + SQL 附加组件,这在开发机上很常见,但如果你平时不马上用数据库,就会显得“开机内存一下子就上来了”。

结论很直接:

  1. 不是单一程序异常爆内存。
  2. 最大头是 Windows 缓存机制,看起来高,但很多是可回收的。
  3. 真正常驻占用的重点,是你开机自动启动了多套数据库服务和 SQL 的附加服务。

如果你想把开机内存明显降下来,最有效的是先处理这些服务,而不是纠结微信、飞书这类小进程:

  • 把暂时不用的MySQL80postgresql-x64-16改成手动启动
  • 如果不用 SQL 的高级功能,把SQL Server Analysis ServicesSQL PolyBase也改成手动
  • 保留你真正每天要用的那一套数据库即可

MySQL80

临时关闭:

Stop-Service -Name MySQL80

设置为开机不启动:

Set-Service -Name MySQL80 -StartupType Disabled

以后重新启用:

Set-Service -Name MySQL80 -StartupType Manual Start-Service -Name MySQL80

如果你希望恢复成开机自动启动:

Set-Service -Name MySQL80 -StartupType Automatic Start-Service -Name MySQL80

PostgreSQL

你这台机器上的服务名是postgresql-x64-16

临时关闭:

Stop-Service -Name postgresql-x64-16

设置为开机不启动:

Set-Service -Name postgresql-x64-16 -StartupType Disabled

以后重新启用:

Set-Service -Name postgresql-x64-16 -StartupType Manual Start-Service -Name postgresql-x64-16

如果你希望恢复成开机自动启动:

Set-Service -Name postgresql-x64-16 -StartupType Automatic Start-Service -Name postgresql-x64-16

SQL Server

先“停止服务”:

Stop-Service -Name MSSQLFDLauncher -Force -ErrorAction SilentlyContinue Stop-Service -Name SQLWriter -Force -ErrorAction SilentlyContinue Stop-Service -Name SQLTELEMETRY -Force -ErrorAction SilentlyContinue Stop-Service -Name SQLBrowser -Force -ErrorAction SilentlyContinue Stop-Service -Name MSSQLLaunchpad -Force -ErrorAction SilentlyContinue Stop-Service -Name SQLPBDMS -Force -ErrorAction SilentlyContinue Stop-Service -Name SQLPBENGINE -Force -ErrorAction SilentlyContinue Stop-Service -Name MSSQLServerOLAPService -Force -ErrorAction SilentlyContinue Stop-Service -Name MSSQLSERVER -Force -ErrorAction SilentlyContinue

再“禁止开机启动”:

Set-Service -Name MSSQLFDLauncher -StartupType Disabled Set-Service -Name SQLWriter -StartupType Disabled Set-Service -Name SQLTELEMETRY -StartupType Disabled Set-Service -Name SQLBrowser -StartupType Disabled Set-Service -Name MSSQLLaunchpad -StartupType Disabled Set-Service -Name SQLPBDMS -StartupType Disabled Set-Service -Name SQLPBENGINE -StartupType Disabled Set-Service -Name MSSQLServerOLAPService -StartupType Disabled Set-Service -Name MSSQLSERVER -StartupType Disabled

下次要用时,一键重新打开

先“重新启用”:

Set-Service -Name MSSQLFDLauncher -StartupType Manual Set-Service -Name SQLWriter -StartupType Manual Set-Service -Name SQLTELEMETRY -StartupType Manual Set-Service -Name SQLBrowser -StartupType Manual Set-Service -Name MSSQLLaunchpad -StartupType Manual Set-Service -Name SQLPBDMS -StartupType Manual Set-Service -Name SQLPBENGINE -StartupType Manual Set-Service -Name MSSQLServerOLAPService -StartupType Manual Set-Service -Name MSSQLSERVER -StartupType Manual

再“启动服务”:

Start-Service -Name MSSQLSERVER Start-Service -Name MSSQLServerOLAPService Start-Service -Name SQLPBENGINE Start-Service -Name SQLPBDMS Start-Service -Name MSSQLLaunchpad Start-Service -Name SQLBrowser Start-Service -Name SQLTELEMETRY Start-Service -Name SQLWriter Start-Service -Name MSSQLFDLauncher
Set-Service -Name MSSQLSERVER -StartupType Manual

最终总表

下面这份你以后直接照着复制就行。

1. 关闭 SQL Server

Stop-Service -Name MSSQLFDLauncher -Force -ErrorAction SilentlyContinue Stop-Service -Name SQLWriter -Force -ErrorAction SilentlyContinue Stop-Service -Name SQLTELEMETRY -Force -ErrorAction SilentlyContinue Stop-Service -Name SQLBrowser -Force -ErrorAction SilentlyContinue Stop-Service -Name MSSQLLaunchpad -Force -ErrorAction SilentlyContinue Stop-Service -Name SQLPBDMS -Force -ErrorAction SilentlyContinue Stop-Service -Name SQLPBENGINE -Force -ErrorAction SilentlyContinue Stop-Service -Name MSSQLServerOLAPService -Force -ErrorAction SilentlyContinue Stop-Service -Name MSSQLSERVER -Force -ErrorAction SilentlyContinue Set-Service -Name MSSQLFDLauncher -StartupType Disabled Set-Service -Name SQLWriter -StartupType Disabled Set-Service -Name SQLTELEMETRY -StartupType Disabled Set-Service -Name SQLBrowser -StartupType Disabled Set-Service -Name MSSQLLaunchpad -StartupType Disabled Set-Service -Name SQLPBDMS -StartupType Disabled Set-Service -Name SQLPBENGINE -StartupType Disabled Set-Service -Name MSSQLServerOLAPService -StartupType Disabled Set-Service -Name MSSQLSERVER -StartupType Disabled

2. 开启 SQL Server

Set-Service -Name MSSQLFDLauncher -StartupType Manual Set-Service -Name SQLWriter -StartupType Manual Set-Service -Name SQLTELEMETRY -StartupType Manual Set-Service -Name SQLBrowser -StartupType Manual Set-Service -Name MSSQLLaunchpad -StartupType Manual Set-Service -Name SQLPBDMS -StartupType Manual Set-Service -Name SQLPBENGINE -StartupType Manual Set-Service -Name MSSQLServerOLAPService -StartupType Manual Set-Service -Name MSSQLSERVER -StartupType Manual Start-Service -Name MSSQLSERVER Start-Service -Name MSSQLServerOLAPService Start-Service -Name SQLPBENGINE Start-Service -Name SQLPBDMS Start-Service -Name MSSQLLaunchpad Start-Service -Name SQLBrowser Start-Service -Name SQLTELEMETRY Start-Service -Name SQLWriter Start-Service -Name MSSQLFDLauncher

3. 关闭 MySQL80

Stop-Service -Name MySQL80 -Force -ErrorAction SilentlyContinue Set-Service -Name MySQL80 -StartupType Disabled

4. 开启 MySQL80

Set-Service -Name MySQL80 -StartupType Manual Start-Service -Name MySQL80

5. 关闭 PostgreSQL

Stop-Service -Name postgresql-x64-16 -Force -ErrorAction SilentlyContinue Set-Service -Name postgresql-x64-16 -StartupType Disabled

6. 开启 PostgreSQL

Set-Service -Name postgresql-x64-16 -StartupType Manual Start-Service -Name postgresql-x64-16

补一句最实用的:这些命令都建议在“管理员 PowerShell”里执行。
如果你想,我下一步可以再给你整理成“超精简版”,每个只保留一小段,方便你以后收藏。

表格分界线

关闭后减少了四五G内存