我有一个XML列的表。这些文档非常大而且数量众多,我一直在尝试各种方法来提高基本查询的性能。
因为文档表明,将XML架构应用于列可以帮助SQL Server优化查询,而且因为有一个查询可用,所以我创建了一个架构集合,并将该类型应用于我的XML列。
查询性能一落千丈。
我的意思是,最简单的测试变得令人难以忍受的缓慢。我删除了列类型,查询执行得和以前一样好。这件事发生在别人身上了吗?
我应该注意到模式本身是相当大和复杂的。不过,这个结果对我来说似乎是违反直觉的。
编辑: 我只关心SELECT语句——事实上,这些文档永远不会被编辑,只会被浏览。所以我不明白为什么在插入和验证记录之后,除了可能的优化之外,还需要这个模式。
而且,我知道 this issue ,其中 指数 在XML列上可能会对性能产生负面影响。这不是我的问题-索引对我运行的查询没有明显的影响,不管是正面的还是负面的,我已经尝试了上面的场景,有没有索引。
我想你的答案就在这里:
我应该注意到模式本身是相当大和复杂的
一个复杂的模式在计算上可能非常复杂。如果您在更新方面做了很多工作,特别是,必须多次验证架构。