【问题标题】:SQL Azure Federation Splitting Design and QueryingSQL Azure 联合拆分设计和查询
【发布时间】:2012-09-21 21:29:26
【问题描述】:

我有几个关于 Microsoft SQL Azure 联合的问题:

1) 我可以在活动数据库上创建联合数据库还是需要提前部署联合?

2) 我是否需要对 SQL 查询进行任何更改以符合我查询联合的方式,或者我可以在处理一个 SQL Server 数据库时继续使用我的常规查询?

3) 当我拆分我的数据库时,一段时间后我看到其中一个分片非常繁忙并且几乎已满,我如何使用联合来解决这个问题? - 我是否只需要拆分已满 90% 的单个联合表,或者我需要使用更宽的范围重新创建拆分策略。问题是一个特定的用户可能非常活跃,那么我使用什么策略来确保我不需要由于一个非常活跃的联合表/用户而重新创建联合策略?

4) 当我想要使用不同的主键拆分不同的表时,分片将如何工作。例如:

据我了解:

[博客]

blog_id

信息

[博客帖子]

身份证

blog_id

post_content

因此,如果我决定根据 0-1000、1-2001 的 blog_id 进行分片,我将拥有两个联合表。但是,如果我添加更多具有除 blog_id 之外的不同键的表,我有多少联合表,我会拥有更多联合表吗?

谢谢

【问题讨论】:

    标签: azure azure-sql-database federated-table


    【解决方案1】:

    请更准确、更具体,一次只问一个问题。单独询问时,您有更好的机会获得所有问题的答案。现在让我试着回答你的一些问题。

    1) 我可以在活动数据库上创建联合数据库还是需要 提前部署联邦?

    您当然可以在现有数据库中创建联合。仅在一个新的/空的数据库中创建联邦是没有限制的。但是,在 Active DB 中创建联合对您没有任何帮助。您必须意识到联邦是独立的数据库。联邦(或联邦成员)对联邦根数据库(您创建联邦的数据库)一无所知。因此,一旦您创建了联邦,您就必须考虑从 Active DB(或联邦根)迁移模式/数据。

    2) 我是否需要对 SQL 查询进行任何更改以符合如何 我查询联邦,或者我可以继续使用我的常规查询,因为我 正在针对一个 SQL Server 数据库工作?

    很可能是的。 Windows Azure SQL 数据库联合是数据库层的横向扩展机制。这意味着,就像任何 Web 应用程序需要“特殊”设计才能在类似农场的环境(即像 Windows Azure 这样的横向扩展环境)中工作一样,数据库也需要“特殊”设计才能在横向扩展环境中工作环境。 SQL Azure 联合没有魔杖可以让您的代码正常工作。你必须设计它才能工作。

    3) 当我拆分数据库并经过一段时间后,我看到其中一个 shards 很忙而且几乎满了,我如何使用来解决这个问题 联合会? - 我是否只需要拆分那个单一的联合表 那是 90% 满了,或者我需要重新创建拆分策略 使用较不广泛的范围。问题是一个特定的用户 可以非常活跃,所以我用什么策略来确保我不会 由于一个非常活跃的策略,需要重新创建联合策略 联合表/用户?

    这都是关于分区策略的。您必须非常仔细地设计您的联合密钥以及如何在不同的分片之间划分您的数据。只要将原子单元保持在单个分片中,您就可以随时拆分任何联邦。

    4) 当我有不同的表要拆分时 主键,然后分片将如何工作。

    如果您想在不同的键上拆分不同的表,那么您将拥有不同的联邦,每个联邦都有自己的联邦键和自己的表。

    如果您准备参加 SQL 联合,那么值得一看的好视频:http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/DBI408

    【讨论】:

      猜你喜欢
      • 2019-12-04
      • 2012-07-06
      • 1970-01-01
      • 1970-01-01
      • 2013-06-07
      • 2019-05-08
      • 2017-11-02
      • 2013-03-31
      • 1970-01-01
      相关资源
      最近更新 更多