复制SQL Azure数据库的完成延迟?

时间:2012-08-08 20:03:31

标签: sql performance azure azure-sql-database

我想知道在SQL Azure上完成database copy需要多少时间。我正在考虑一个场景:

  1. 首先填充单个数据库,然后保持只读。
  2. 创建一组副本。
  3. 令人尴尬的任务在每个副本上都是并行的(只读)。
  4. 删除副本以降低托管成本。
  5. 如果SQL Azure上的数据库副本速度相当快,这种情况就有意义了。

    有没有人有关于完成SQL Azure数据库副本的延迟的一些信息,可能没有数据库的GB大小(假设较小的数据库被复制得比大数据库快)?

    辅助问题:如果同时触发10个数据库副本,完成第10个副本需要多10倍的时间吗?或者SQL Azure是否支持这种操作的某种程度的并行化。

2 个答案:

答案 0 :(得分:0)

我没有经验数据表明复制各种大小的DB需要多长时间,但根据我的经验,时间通常是几分钟。对于我经常使用的小于100MB的DB,我允许5分钟,但这可能非常慷慨。我偶尔会复制较大的数据库并且它似乎没有那么大,我怀疑很多时候实际上花费了配置新数据库而不是复制数据。

我正在猜测如果您启动多个副本会发生什么,但是由于SQL Azure基础架构,如果在同一时间启动多个副本的情况下出现大幅减速,我会感到惊讶。

我不知道您希望整个过程需要多长时间,但我认为这基本上是个好主意。我强烈建议你做一些自己的基准测试。

答案 1 :(得分:0)

我发现它特别慢。我刚刚复制了一个3.45MB的小型数据库,耗时超过5分钟。它开始于6:42,结束时间为6:49。

这只是使用SQL命令行创建副本。例如:

CREATE DATABASE NewDB AS COPY OF OldDB;

我不确定这笔交易是什么 - 每当我去检查进度时,它都没有显示任何内容,然后突然就完成了。

例如:

SELECT * FROM sys.dm_database_copies c
JOIN sys.databases d ON c.database_id = d.database_id
WHERE databases.name = 'NewDB';

每次看的时候,percent_complete列都为null。我真的担心我做错了什么......