简体   繁体   English

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

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

Our current database is of nearly 200MB, but once the application goes live, we are expecting this to grow to a large volume.. may be, 20-30 GB of data in that. 我们当前的数据库将近200MB,但是一旦应用程序上线,我们希望它会增长到很大的数量。其中可能有20-30 GB的数据。

We are planning to use "dacpac" (generated by database project - SSDT) to deploy on production server. 我们计划使用“ dacpac”(由数据库项目-SSDT生成)部署在生产服务器上。 The database will be created with a number of tables, and lots of initial data in lookup tables. 将使用许多表创建数据库,并在查找表中包含许多初始数据。

However, the concern is for future deployments when we will be using the "dacpac" (generated by database project - SSDT) to upgrade the database on production server. 但是,当我们将使用“ dacpac”(由数据库项目-SSDT生成)来升级生产服务器上的数据库时,担心的是将来的部署。

As I have no past experience of using dacpac for deployments, can anyone please suggest me following - 由于我以前没有使用dacpac进行部署的经验,因此任何人都可以建议我关注以下内容-

  1. Does the deployment depend on the volume of data? 部署是否取决于数据量? Or if it just depends upon the schema changes? 还是仅取决于架构更改? For example, if the target database is of 20-30 GB, how much approximate time it can take just to upgrade it? 例如,如果目标数据库的大小为20-30 GB,那么升级它大约需要花费大约多少时间?
  2. How can we version database schema? 我们如何版本数据库架构?
  3. Can the upgrade process be rolled back if anything goes wrong? 如果出现任何问题,是否可以回退升级过程?

And lastly, is it better than traditional way of manual writing sql scripts to upgrade database? 最后,它比传统的手动编写sql脚本升级数据库的方法好吗?

  1. From my experience, volume of data does have an impact when deploying a dacpac. 根据我的经验,部署dacpac时确实会影响数据量。 The time increase will depend on what changes are being applied in your dacpac across your database. 时间的增加将取决于在整个数据库中的dacpac中应用了哪些更改。 My only advice here is to try and test with larger volumes of data to gauge the increase in time, It may be minimal 我在这里的唯一建议是尝试使用大量数据进行测试,以评估时间的增加,这可能很小

  2. All our objects are stored within a SQL Server Data Tools (SSDT) visual studio project, this is then version controlled within TFS, so when we need to do a build based on additional checking, it will create a new version for us 我们所有的对象都存储在一个SQL Server数据工具(SSDT)visual studio项目中,然后在TFS中对其进行版本控制,因此当我们需要基于其他检查进行构建时,它将为我们创建一个新版本。

  3. This can depend on the type of updates you are applying, and whether you wish to invest time in understanding what it would take to rollback each schema update. 这可能取决于您要应用的更新类型,以及您是否希望花费时间来了解回滚每个架构更新所需的时间。

I like using dacpac's and find it very useful with you hosting all your SQL objects within the one Visual Studio project. 我喜欢使用dacpac,并发现它在一个Visual Studio项目中托管所有SQL对象时非常有用。 Going the manual way could increase the chances that you forget to include one or more patches due to the number of changes required. 采用手动方式可能会增加由于所需更改数量而忘记包括一个或多个补丁程序的机会。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM