return SQL 服务器数据库到某个时间点的最快方法是什么?

What is the fastest way to return a SQL Server database to a point in time?

业务问题:我们想要运行 一系列自动化测试,每个测试针对一个数据库,从已知状态开始。

现在,我知道保证数据库在测试开始时处于其原始状态的最佳方法是在每次测试之前从 .bak 备份文件恢复数据库,但是这很慢。

有没有更快的方法?

我们正在使用 SQL Server 2016,主要是 .NET 技术。

(注意:我知道有更多以数据库为中心的论坛,但由于我是从开发人员的角度提问,所以从这里开始似乎是合理的。)

Database snapshotting 似乎以最小的开销完全按照我的意愿行事。

创建快照:

CREATE DATABASE t19314_ss ON
  ( NAME = TimeStar,
    FILENAME = 'C:\temp\snappy.ss' ) AS SNAPSHOT OF t19314

恢复到快照:

RESTORE DATABASE t19314 from DATABASE_SNAPSHOT = 't19314_ss';