dacpac 可以用于管理具有大量数据的数据库吗?

can dacpac be used for managing databases having large volume of data?

我们当前的数据库将近 200MB,但一旦应用程序上线,我们预计它会增长到一个很大的容量。可能是 20-30 GB 的数据。

我们计划使用 "dacpac"(由数据库项目 - SSDT 生成)部署到生产服务器上。将创建数据库,其中包含许多表,以及查找表中的大量初始数据。

然而,当我们将使用 "dacpac"(由数据库项目生成 - SSDT)升级生产服务器上的数据库时,需要担心的是未来的部署。

由于我过去没有使用 dacpac 进行部署的经验,任何人都可以建议我遵循 -

  1. 部署是否取决于数据量?或者它是否仅取决于架构更改?例如,如果目标数据库为20-30 GB,那么仅升级它大约需要多少时间?
  2. 我们如何对数据库架构进行版本控制?
  3. 如果出现问题,升级过程可以回滚吗?

最后,是否比传统手动编写 sql 脚本升级数据库的方式更好?

  1. 根据我的经验,部署 dacpac 时数据量确实会产生影响。时间的增加将取决于在整个数据库中对 dacpac 应用了哪些更改。我在这里唯一的建议是尝试使用更大的数据量进行测试以衡量时间的增加,它可能是最小的

  2. 我们所有的对象都存储在一个 SQL 服务器数据工具 (SSDT) visual studio 项目中,然后在 TFS 中进行版本控制,所以当我们需要做一个基于附加检查构建,它将为我们创建一个新版本

  3. 这可能取决于您正在应用的更新类型,以及您是否希望花时间了解回滚每个架构更新所需的时间。

我喜欢使用 dacpac,并且发现它对在一个 Visual Studio 项目中托管所有 SQL 对象非常有用。由于需要进行大量更改,采用手动方式可能会增加您忘记包含一个或多个补丁的可能性。