SQL Azure联合和索引 - 性能说明

时间:2013-11-20 15:34:47

标签: sql azure-sql-database sql-azure-federations

我们目前有一个SQL联合数据库,它在大致相等的数据部分中分割了10个分片,并通过客户端ID进行过滤。

目前我们遇到执行过滤查询的性能问题,例如,为特定客户端运行查询可能需要3分钟才能在某些分片中返回4000行。但是,在同一个分片上的未过滤连接中运行完全相同的查询会在4秒内及时返回。一个值得注意的方面是,经历减速的分片往往包含更多的客户端,尽管数据较少。最可能的性能抑制器(我相信)将是索引以及与Filtered / Unfiltered连接相关的东西。

搜索周围我没有找到关于分片上的查询性能的更多信息/分片上的特定索引策略(除了Azure显然不支持索引视图)。我的印象(因此需要澄清)是索引应用于分片的所有成员,而不是逐个成员。

如果是前者,那么我们有点腌制,除了重新分析这个特殊的碎片,这是没有意义的,因为唯一的区别是客户端的数量,而不是数据的大小。我们要尝试的一些事情是明确地将过滤器添加到索引,甚至将过滤器添加到每个查询。可以说,我们不喜欢远离Filtered连接。

是否有其他人遇到过这个问题,或者是否可能提供一些指示:未经过滤的连接明显优于过滤后的连接?

提前致谢...

1 个答案:

答案 0 :(得分:0)

联盟中的索引在联盟成员的基础上应用。如果您从单个索引成员开始并执行SPLIT操作,则索引将自动应用于SPLIT的产品。但是,如果在创建多个成员后应用了索引,则需要向每个成员显式添加索引。

所以希望你不是一个泡菜。

由于4月份宣布的新SKU不支持该功能,您可能希望考虑联合会的替代方案。