为什么在SQL Server中的各列上存储XML数据?

时间:2012-11-22 17:02:26

标签: sql-server xml

关于在SQL Server数据库中使用XML的简短问题......

我有一个新表来存储从另一个表中获取的一些数据,并且已经通知我必须将这些数据以XML格式存储到列中,而不是仅将值存储在它们自己的列中。

对于我的生活,我可以弄清楚为什么这更好,我问过其他几个看不到好处的人。在任何地方,XML都不会在代码中的任何位置用作XML,只会使用从其中条带化的数据。

想知道是否有人有任何意见,赞成或反对,以帮助我更好地理解。

非常感谢你的想法, P

4 个答案:

答案 0 :(得分:1)

使用XML数据类型会消耗性能。索引很棘手。与SQL更新相比,更新文档的一部分非常困难。成本不容低估。

也许'告诉你的人'听说'NoSql / Xml数据库更好'。答案当然是,它实际上取决于背景。有人可能会说,与XML列一起使用的SqlServer不是NoSql。

也许你应该问这些问题:

  • 你只需要存储层次结构吗? (nvarchar(max)列就够了)
  • 你还需要查询层次结构吗? (然后是XML或关系型,具体取决于架构的复杂性)
  • 难以使用关系模式对层次结构进行建模吗?
  • 层次结构会随时间而变化吗?

答案 1 :(得分:0)

通常,在数据结构易失时使用XML类型。即使您可以使用xml架构验证XML列中的数据,但大多数工作都是在应用程序端完成的。例如,如果您从第三方服务接收数据,则很难保证它始终遵循相同的格式并具有相同的属性。

答案 2 :(得分:0)

如果您不了解委托项目并为此付费的人给您的要求,我们怎么办?

可能有一个原因要求您没有告诉我们,因为您对此并不了解。

可能没有。

这个论坛上的任何人都无法知道。

答案 3 :(得分:0)

解决方案已经过重新设计,我们将把值存储在列而不是XML中。与所有各方需要/将需要的完整愿景缺乏明确的要求!

谢谢大家的回复。