2009-05-22 42 views

回答

3

我不知道您的要求究竟是什么,以及我们在这里讨论的文档数量和尺寸。

SQL Server 2005确实允许您指定XML模式,因此您肯定可以在等式中进行一些验证,这当然是有益的。

至于XML索引 - 一旦您创建了基本的主XML索引,就可以对三种不同的策略进行索引。

  • 第一索引类型多为XPath的优化,当你为节点做大量的基于XPath查询的一个XML节点(CREATE XML INDEX ..... FOR PATH
  • 多为XML内部优化,以价值观访问第二索引类型节点,当你搜索更多基于XML文档中的值(CREATE XML INDEX ..... FOR VALUE
  • 第三种是上述两种的混合几分的(我从来没有完全groked自己,说实话,CREATE XML INDEX ..... FOR PROPERTY

XML索引在我们的样本中工作得很好,但我们的主要缺点是磁盘上索引的规模庞大。我们的1.3 GB数据库增长到超过11 GB,只需将一个PRIMARY XML和一个XML FOR PATH索引添加到大约45'000个具有XML字段的条目中即可。由于磁盘的限制,我们最终不得不取消这些索引:-(

考虑如何将XML索引与每个XML节点,属性等条目构建起来,这并不令人意外 - 它只是大量的数据

我们最后做的是创建一些存储的函数,它们从我们的Entry表中获取到XML,并且我们提取了我们最常需要的那些零碎和碎片。现在保存在Entry表中作为已计算的持久性属性,这与Entry表上的“正确”字段一样快,它始终保持最新状态,并且在插入新数据时自动设置,并且我们几乎不需要真正使用任何significan t XQuery请求了。

我个人的经验可以说,在我看来,SQL Server 2005中的XML支持真的很深刻和深思熟虑。总而言之,我会说 - 去尝试一下!除非您尝试过,否则您无法真正分辨出它是否可以正常工作并在您的特定情况下可以很好地扩展。

Marc

0

我还没有尝试过,但XML对我来说似乎有点过于冗长。我想我以后可以从我的数据生成XML,为什么担心将它存储在XML中。

+0

我有XML文件,它将很好利用该结构并查询它们。然后解析xml文件以将感兴趣的数据放入表格中更简单。 – 2009-05-22 20:35:27