8 我有一些用于遗留应用程序的数据库,这些数据库在虚拟机中运行,这些虚拟机当前处于关闭状态,直到有人需要查看一些历史记录为止。我已将这些应用程序使用的每个数据库设置为脱机,但我想知道: 将这些未使用的数据库置于脱机状态,而不是使它们处于联机状态,但是在未与它们建立任何连接或对它们运行查询的情况下,是否具有性能优势? sql-server performance — 克里斯·马格努森 source
11 如果数据库中有对象,将其脱机会将这些对象从缓冲区中删除。这样可以释放其他数据库对象的内存。 此外,将其脱机还可以确保自动维护计划(备份,索引维护,完整性检查...)不会浪费任何资源对其进行维护。 — 布莱恩 source
6 您可以改为打开AUTO_CLOSE以下数据库: 设置为ON时,最后一个用户退出后,该数据库将完全关闭并释放其资源。当用户尝试再次使用数据库时,数据库将自动重新打开。设置为OFF时,最后一个用户退出后,数据库保持打开状态。 尽管通常避免使用此设置,但此设置对于真正很少使用的数据库有效。只需访问数据库即可打开它,无需手动干预。 — 雷木斯·鲁萨努(Remus Rusanu) source
1 如果没有数据库连接,我认为它们没有使用SQL Server资源。您可以对这些数据库进行完整备份,并将其从服务器中删除,也可以使其脱机;如果需要, 您可以立即将它们重新联机,但是,这将导致在所有DB上运行的管理作业出错,例如备份所有用户DB,重新索引所有用户数据库 — 汤米克 source