代码之家  ›  专栏  ›  技术社区  ›  harpo

为什么模式会使XML列变慢?

  •  0
  • harpo  · 技术社区  · 15 年前

    我有一个XML列的表。这些文档非常大而且数量众多,我一直在尝试各种方法来提高基本查询的性能。

    因为文档表明,将XML架构应用于列可以帮助SQL Server优化查询,而且因为有一个查询可用,所以我创建了一个架构集合,并将该类型应用于我的XML列。

    查询性能一落千丈。

    我的意思是,最简单的测试变得令人难以忍受的缓慢。我删除了列类型,查询执行得和以前一样好。这件事发生在别人身上了吗?

    我应该注意到模式本身是相当大和复杂的。不过,这个结果对我来说似乎是违反直觉的。

    编辑: 我只关心SELECT语句——事实上,这些文档永远不会被编辑,只会被浏览。所以我不明白为什么在插入和验证记录之后,除了可能的优化之外,还需要这个模式。

    而且,我知道 this issue ,其中 指数 在XML列上可能会对性能产生负面影响。这不是我的问题-索引对我运行的查询没有明显的影响,不管是正面的还是负面的,我已经尝试了上面的场景,有没有索引。

    1 回复  |  直到 15 年前
        1
  •  0
  •   Charlie Martin    15 年前

    我想你的答案就在这里:

    我应该注意到模式本身是相当大和复杂的

    一个复杂的模式在计算上可能非常复杂。如果您在更新方面做了很多工作,特别是,必须多次验证架构。