【问题标题】:When is a clustered index absolutely necessary?什么时候绝对需要聚集索引?
【发布时间】:2012-01-15 20:32:45
【问题描述】:

AFAIK SQL 表索引是为了提高查询速度,所以不是绝对必要的。但是 SQL Azure 出于某种原因要求每个表都有一个聚集索引,所以我猜有些情况下需要索引。

当绝对需要聚集索引时会出现什么情况?为什么?

【问题讨论】:

  • 拥有 good 群集键(例如在INT IDENTITY 上)是一种很好的常见做法。几乎所有操作在聚簇表上都比在堆表上更快。详情见Kimberly Tripp's blog post

标签: sql sql-server indexing azure-sql-database clustered-index


【解决方案1】:

没有聚集索引意味着表的存储模型完全不同,即堆表。我怀疑 SQL Azure 团队根本没有实现这一点,因此表必须以“常规”方式存储。

This article 描述了堆表和聚簇表的一些优缺点。

【讨论】:

    【解决方案2】:

    由于系统后端的复制,SQL Azure 需要聚集索引。这是来自 MSDN 博客的参考文章,其中涉及一些技术细节:

    http://blogs.msdn.com/b/sqlazure/archive/2010/05/12/10011257.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-13
      • 2012-09-16
      • 1970-01-01
      • 2013-10-22
      • 1970-01-01
      • 2018-12-10
      相关资源
      最近更新 更多