我试图了解在SQL Server 2005中使用 XML DataType的基本优势。我接受了文章 here ,说如果你想要的话删除多条记录。序列化XMl,在数据库中发送它并使用下面的查询你可以删除它..
我很想知道使用这个DataType的任何其他优点......
修改
Reasons for Storing XML Data in SQL Server 2005
以下是在SQL Server 2005中使用本机XML功能而不是在文件系统中管理XML数据的一些原因:
您希望使用数据库服务器的管理功能来管理XML数据(例如,备份,恢复和复制)。
我的理解 - 您能否分享一些知识以表明它?
您希望以高效和交易的方式共享,查询和修改XML数据。细粒度数据访问对您的应用程序很重要。例如,您可能希望插入新的部分而不替换整个文档。
我的理解 - XML位于特定列行中,为了在此行的单元格中添加新部分,需要更新,因此将更新整个文档。对?
您希望服务器保证格式良好的数据,并根据XML模式选择性地验证数据。
我的理解 - 您能否分享一些知识以明确其中?
您希望索引XML数据以实现高效的查询处理和良好的可伸缩性,并使用一流的查询优化器。
我的理解 - 可以通过添加单个列来完成相同的操作。那么为什么是XML专栏?
答案 0 :(得分:1)
优点: 允许存储可由xml架构自动控制的xml数据 - 从而保证一定级别的数据质量 许多Web /桌面应用程序以xml格式存储数据,然后可以在数据库中轻松存储和查询 - 因此它是存储应用程序可能需要使用的xml数据的好地方(例如,用于配置设置)
缺点: 小心使用xml字段,它们可能从无辜的存储开始,但如果你想搜索,分析和报告许多记录,它们可能会成为一场性能噩梦。
此外,如果将添加,更改或删除xml字段,这可能会很慢并导致复杂的t-sql。
在复制中,即使只有一个节点发生更改,整个xml也会更新 - 因此您可能会遇到更多无法轻松解决的冲突。
答案 1 :(得分:0)
我会说你列出的4个优点,这两个是至关重要的:
您希望以高效和交易的方式共享,查询和修改XML数据
SQL Server以优化的方式存储XML,而不是普通字符串,并允许您以有效的方式查询XML,而不是要求您将整个XML文档带回客户端。想想如果要查询10,000个XML列,每个列包含1k个数据,效率会有多低。对于小型XPath查询,您需要每次为每个客户端返回10k数据。
您希望索引XML数据以实现高效的查询处理和良好的可伸缩性,并使用一流的查询优化器
这与我上面所说的相关,它比纯文本列更有效地存储,而纯文本列也会遇到页面碎片问题。