SQL Server 2008作为xml文档数据库

时间:2009-05-22 15:44:08

标签: sql-server xml

有没有人使用SQL Server 2008作为xml文档数据库?你这么做的想法是什么? XML数据类型的索引和查询是否足以支持这种类型的角色? XML的查询性能是否可以接受?

2 个答案:

答案 0 :(得分:3)

我不知道您的要求到底是什么,以及我们在这里讨论了多少文件和尺寸。

SQL Server 2005允许您指定XML模式,因此您肯定可以对方程式进行一些验证,这肯定是有益的。

对于XML索引 - 一旦创建了基本的主XML索引,就可以为三种不同的策略编制索引。

  • 第一个索引类型更多用于在对节点执行大量基于XPath的查询时优化XPath到单个XML节点(CREATE XML INDEX ..... FOR PATH
  • 第二个索引类型更多,用于优化对XML节点内值的访问,当您根据XML文档中的值进行更多搜索时(CREATE XML INDEX ..... FOR VALUE
  • 第三个是上面两个的混合(我从来没有弄过自己,说实话; CREATE XML INDEX ..... FOR PROPERTY

XML索引在我们的示例中运行良好,但我们的主要缺点是磁盘上索引的绝对大小。我们的1.3 GB数据库通过向XML字段大约45,000个条目添加PRIMARY XML和XML FOR PATH索引,增长到11 GB以上。由于磁盘限制,我们最终不得不取消这些指数: - (

考虑到如何使用每个XML节点,属性等条目构建XML索引,这真的不足为奇了 - 它只是大量数据。

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

我个人的经验可以说,在我看来,SQL Server 2005中的XML支持非常深刻且深思熟虑。总而言之,我想说 - 试一试吧!在你试一试之前,你无法确定它是否有效并且在你的特定情况下能够很好地扩展。

马克

答案 1 :(得分:0)

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

相关问题