【问题标题】:SQL Azure HierarchyId support?SQL Azure HierarchyId 支持?
【发布时间】:2012-04-10 13:11:05
【问题描述】:

我想知道是否有人可以确定 SQL Azure 是否支持层次结构节点,以及它与 SQL 2008 的层次结构 ID 在性能/可扩展性方面的可比性。

基本上,我们正在考虑迁移一个系统,该系统在性能非常关键的方法中广泛使用现有的 HierarchyId,并且对该功能的支持是该项目的巨大游戏规则改变者,但我无法访问 SQL Azure 数据库目前我自己对此进行测试。

我在 2010 年发布的 SQL Azure SU3 中发现了一些对它的引用,但同时我与微软有矛盾,他们基本上说 SQL Azure 不支持它(直接与官方公告相反,不幸的是不是直接对我,所以我不能像我想要的那样质疑它)......

我希望对 Azure 有一点经验的人可以告诉我哪一方面是正确的,如果该功能存在,其性能是否可以与 SQL Server 2008 相媲美?

【问题讨论】:

  • 您对什么样的操作感兴趣?我们在 Azure 项目中只使用了 HierarchyId 类型(用于对软件构建版本进行排序),例如 order by cast('/' + replace(Version, '.', '/') + '/' as hierarchyid) 所以该类型应该在那里,但我没有经验可以用它做什么..
  • 主要将其用于 IsDescendantOf 方法(我们还使用了更多方法,但如果该方法仍然有效,我们可能会解决其余的方法)。我们主要将它用于查询海量动态树结构的性能。

标签: azure-sql-database hierarchyid


【解决方案1】:

是的,SQL Azure 支持 hierarchyid 作为数据类型和相关函数。有关支持哪些功能的描述,see this article。转到文章末尾的层次结构数据类型。

无论官方文档怎么说,您绝对应该针对 SQL Azure 数据库尝试您的数据库架构。创建一个 Azure 帐户需要几秒钟,并且确定您的数据库架构是否兼容也很容易。

但是,我想知道您所说的运行“性能关键操作”是什么意思。您可能应该从性能的角度测试 SQL Azure,以确保从中获得所需的东西。

【讨论】:

  • 感谢您的链接,看起来它有我们需要的东西。通过性能关键操作,我的意思是我正在处理一个数 GB 的数据库,并且我们查询中的 HierarchyId IsDescendantOf 过滤非常常见 - 例如,用递归 CTE 代替其中一些操作会使数据库服务器 100% CPU 直到超时才能达到完全相同的结果。我们肯定打算自己做一些性能测试,我只是希望在我们投入足够的资金来测试性能之前得到一些高级别的保证——在这个阶段,移动它只是一个可能的想法。
猜你喜欢
  • 2011-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-27
  • 1970-01-01
  • 1970-01-01
  • 2017-02-15
  • 1970-01-01
相关资源
最近更新 更多