Print

【MVS】SQLServer数据库的自动关闭特性介绍

问题描述

SQLServer数据库的自动关闭特性介绍

解决方法

AUTO_CLOSE(自动关闭)

1)特性简介

  • 含义:当数据库最后一个用户连接断开后,SQL Server 会将数据库关闭并释放部分资源;下次访问时再重新打开。
  • 影响:可能带来首次连接变慢、计划/缓存抖动、频繁打开关闭等问题。

2)从什么版本开始支持

  • 早期版本即已支持(SQL Server 很早就具备该数据库选项,至少从 SQL Server 2000 起就常见)。

3)如何查询当前状态

 
sql
复制
SELECT name, is_auto_close_on FROM sys.databases WHERE name = N'YourDB';

或:

 
sql
复制
SELECT DATABASEPROPERTYEX(N'YourDB','IsAutoClose') AS IsAutoClose;

4)什么情况考虑开启

  • 非生产/实验环境、数据库非常多且极少访问,希望在极低频访问时释放少量资源。
  • 某些桌面/单机或非常轻量的场景(常见于 SQL Server Express 的小应用)。

5)什么情况建议关闭(常规生产建议关闭)

  • 业务库/生产库(尤其高并发、连接频繁、使用连接池的应用)。
  • 需要稳定性能与响应时间的系统。
  • 报表、ETL、作业等规律性访问的库(会造成周期性“首连慢”)。

6)如何设置

 
sql
复制
ALTER DATABASE [YourDB] SET AUTO_CLOSE OFF; -- 或 ON